squidient 3.4.4__tar.gz → 3.4.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. {squidient-3.4.4 → squidient-3.4.5}/PKG-INFO +1 -1
  2. {squidient-3.4.4 → squidient-3.4.5}/pyproject.toml +1 -1
  3. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/builds/builds.json +5 -0
  4. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/configurations/systems.json +57 -0
  5. squidient-3.4.5/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/.gitignore +2 -0
  6. squidient-3.4.5/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/cloud-init-slurm-fedora.sh +321 -0
  7. squidient-3.4.5/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/t3.small.tf +170 -0
  8. squidient-3.4.5/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/terraform.tfvars +2 -0
  9. {squidient-3.4.4 → squidient-3.4.5}/.gitignore +0 -0
  10. {squidient-3.4.4 → squidient-3.4.5}/LICENSE.txt +0 -0
  11. {squidient-3.4.4 → squidient-3.4.5}/README.md +0 -0
  12. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/__init__.py +0 -0
  13. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/builds/benchmark_build_execution.py +0 -0
  14. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/builds/benchmark_build_orchestrator.py +0 -0
  15. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/builds/build_definition.py +0 -0
  16. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/builds/build_execution.py +0 -0
  17. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/builds/build_orchestrator.py +0 -0
  18. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/builds/build_presets.py +0 -0
  19. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/cli/__init__.py +0 -0
  20. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/cli/__main__.py +0 -0
  21. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/cli/main.py +0 -0
  22. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/cli/monitoring.py +0 -0
  23. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/cli/staging.py +0 -0
  24. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/cli/update.py +0 -0
  25. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/code_coverage/code_coverage.py +0 -0
  26. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/code_coverage/gcovr_code_coverage.py +0 -0
  27. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/code_coverage/intel_code_coverage.py +0 -0
  28. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/compare.py +0 -0
  29. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/compare_with_diff_table.py +0 -0
  30. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/absolute.py +0 -0
  31. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/close.py +0 -0
  32. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/diff.py +0 -0
  33. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/l1_norm.py +0 -0
  34. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/l1_relative.py +0 -0
  35. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/l2_norm.py +0 -0
  36. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/l2_relative.py +0 -0
  37. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/linf_norm.py +0 -0
  38. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/linf_relative.py +0 -0
  39. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/power.py +0 -0
  40. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/relative.py +0 -0
  41. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/scalar_tolerance.py +0 -0
  42. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/tolerance.py +0 -0
  43. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compare/methods/vector_tolerance.py +0 -0
  44. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/compilation/cmake_options.py +0 -0
  45. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/configuration/__init__.py +0 -0
  46. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/configuration/code_coverage.py +0 -0
  47. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/configuration/generator.py +0 -0
  48. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/configuration/prompts.py +0 -0
  49. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/configure.py +0 -0
  50. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/connection/job.py +0 -0
  51. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/connection/ssh.py +0 -0
  52. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/connection/ssh_config_checker.py +0 -0
  53. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/.squidient-initialized +0 -0
  54. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-alamak.json +0 -0
  55. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-chemint.json +0 -0
  56. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-clang.json +0 -0
  57. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-commdom.json +0 -0
  58. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-gnu.json +0 -0
  59. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-intel.json +0 -0
  60. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-mumps.json +0 -0
  61. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-nvhpc.json +0 -0
  62. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/alya-config/cmake-talp.json +0 -0
  63. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/benchmarks/benchmarks.json +0 -0
  64. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/builds/cc.json +0 -0
  65. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/builds/defaults.json +0 -0
  66. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/builds/predefined-old.json +0 -0
  67. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/builds/predefined.json +0 -0
  68. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/configurations/projects.json +0 -0
  69. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/configurations/tests.json +0 -0
  70. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/email/report.html +0 -0
  71. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/icons/big.png +0 -0
  72. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/icons/small.png +0 -0
  73. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/index.html +0 -0
  74. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/.gitignore +0 -0
  75. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small/.gitignore +0 -0
  76. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/cloud-init-slurm-fedora.sh +0 -0
  77. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/t3.small.tf +0 -0
  78. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/terraform.tfvars +0 -0
  79. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/.gitignore +0 -0
  80. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/cloud-init-slurm-fedora.sh +0 -0
  81. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/replace-var.sh +0 -0
  82. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/t3.small.tf +0 -0
  83. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/terraform.tfvars +0 -0
  84. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/.gitignore +0 -0
  85. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/cloud-init-slurm-fedora.sh +0 -0
  86. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/t3.small.tf +0 -0
  87. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/terraform.tfvars +0 -0
  88. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/version/version.json +0 -0
  89. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/btest.html +0 -0
  90. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/cc-gcovr.html +0 -0
  91. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/cc-intel.html +0 -0
  92. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/files.html +0 -0
  93. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/canceled.png +0 -0
  94. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/created.png +0 -0
  95. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/failed.png +0 -0
  96. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/failed_black.png +0 -0
  97. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/failed_green.png +0 -0
  98. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/file_cloud.png +0 -0
  99. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/file_config.png +0 -0
  100. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/file_ko.png +0 -0
  101. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/file_ok.png +0 -0
  102. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/skipped.png +0 -0
  103. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/squidient_logo.png +0 -0
  104. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/success.png +0 -0
  105. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/success_black.png +0 -0
  106. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/timeout.png +0 -0
  107. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/tolerance.png +0 -0
  108. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/warning.png +0 -0
  109. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/warning_black.png +0 -0
  110. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/png/warning_green.png +0 -0
  111. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/canceled.svg +0 -0
  112. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/created.svg +0 -0
  113. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/failed.svg +0 -0
  114. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/failed_black.svg +0 -0
  115. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/failed_green.svg +0 -0
  116. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/manual.svg +0 -0
  117. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/running.svg +0 -0
  118. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/skipped.svg +0 -0
  119. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/success.svg +0 -0
  120. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/success_black.svg +0 -0
  121. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/warning.svg +0 -0
  122. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/warning_black.svg +0 -0
  123. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/img/svg/warning_green.svg +0 -0
  124. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/index.html +0 -0
  125. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/jquery.dynatable.css +0 -0
  126. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/jquery.dynatable.js +0 -0
  127. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/monitoring.html +0 -0
  128. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/monitoring_build.html +0 -0
  129. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/monitoring_test.html +0 -0
  130. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/perf.html +0 -0
  131. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/staging_build.html +0 -0
  132. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/staging_test.html +0 -0
  133. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/test.html +0 -0
  134. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/testsuite.css +0 -0
  135. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/data/web/testsuite.js +0 -0
  136. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/definitions.py +0 -0
  137. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/deployment/initialization.py +0 -0
  138. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/deployment/module_generator.py +0 -0
  139. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/exceptions.py +0 -0
  140. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/monitoring/build_phase.py +0 -0
  141. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/monitoring/full_workflow.py +0 -0
  142. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/monitoring/monitoring.py +0 -0
  143. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/monitoring/monitoring_db.py +0 -0
  144. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/monitoring/notification_failures.py +0 -0
  145. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/monitoring/test_phase.py +0 -0
  146. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/__init__.py +0 -0
  147. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/cases/__init__.py +0 -0
  148. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/cases/base.py +0 -0
  149. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/cases/case.py +0 -0
  150. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/cases/detailed.py +0 -0
  151. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/cases/full.py +0 -0
  152. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/monitoring/__init__.py +0 -0
  153. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/monitoring/report.py +0 -0
  154. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/reports/report.py +0 -0
  155. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/build_phase.py +0 -0
  156. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/execution_warning.py +0 -0
  157. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/full_workflow.py +0 -0
  158. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/report_cleaner.py +0 -0
  159. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/report_transfer.py +0 -0
  160. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/staging.py +0 -0
  161. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/test_phase.py +0 -0
  162. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/staging/test_relauncher.py +0 -0
  163. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/partition.py +0 -0
  164. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/platform.py +0 -0
  165. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/qos.py +0 -0
  166. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/queue_tester.py +0 -0
  167. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/reservation.py +0 -0
  168. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/system.py +0 -0
  169. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/systems/system_manager.py +0 -0
  170. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/terraform/terraform.py +0 -0
  171. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/benchmarks/__init__.py +0 -0
  172. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/benchmarks/failure_notifier.py +0 -0
  173. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/benchmarks/instance.py +0 -0
  174. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/benchmarks/test_case.py +0 -0
  175. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/benchmarks/test_orchestrator.py +0 -0
  176. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/cases/__init__.py +0 -0
  177. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/cases/instance.py +0 -0
  178. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/cases/instance_merger.py +0 -0
  179. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/cases/test_case.py +0 -0
  180. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/testing/test_orchestrator.py +0 -0
  181. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/timers/__init__.py +0 -0
  182. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/timers/timer.py +0 -0
  183. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/arguments.py +0 -0
  184. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/gitlab.py +0 -0
  185. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/lock.py +0 -0
  186. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/log.py +0 -0
  187. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/message.py +0 -0
  188. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/package.py +0 -0
  189. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/utils.py +0 -0
  190. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/utils/watchdog.py +0 -0
  191. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/version_control/__init__.py +0 -0
  192. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/version_control/git_repository.py +0 -0
  193. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/workflows/__init__.py +0 -0
  194. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/workflows/base.py +0 -0
  195. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/workflows/code_coverage.py +0 -0
  196. {squidient-3.4.4 → squidient-3.4.5}/src/squidient/workflows/locks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: squidient
3
- Version: 3.4.4
3
+ Version: 3.4.5
4
4
  Summary: CI/CD framework for alya
5
5
  Project-URL: Homepage, https://alya.gitlab.bsc.es/alya/ci-cd/squidient
6
6
  Project-URL: Bug Tracker, https://alya.gitlab.bsc.es/alya/ci-cd/squidient/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "squidient"
7
- version = "3.4.4"
7
+ version = "3.4.5"
8
8
  authors = [
9
9
  { name="Damien Dosimont", email="damien.dosimont@gmail.com" },
10
10
  ]
@@ -555,6 +555,11 @@
555
555
  "platform": "t3.small",
556
556
  "system": "aws-ec2-t3.small-x2"
557
557
  },
558
+ "cmake-aws-ec2-t3.small-x6-gnu-14.x.x-i4": {
559
+ "from": "cmake-aws-ec2-t3.small-gnu-14.x.x-i4",
560
+ "platform": "t3.small",
561
+ "system": "aws-ec2-t3.small-x6"
562
+ },
558
563
  "cmake-grace-gnu-14.2.0-i4": {
559
564
  "codeCoverage": false,
560
565
  "compiler": "gnu",
@@ -282,6 +282,63 @@
282
282
  }
283
283
  }
284
284
  },
285
+ "aws-ec2-t3.small-x6": {
286
+ "host": "t3.small",
287
+ "path": "/shared/fedora/squidient",
288
+ "user": "fedora",
289
+ "project": "",
290
+ "wait_cloud_init": "t3.small",
291
+ "platforms": {
292
+ "t3.small": {
293
+ "terraform": {
294
+ "enable": true,
295
+ "sshKeyName": "t3.small"
296
+ },
297
+ "account": "",
298
+ "architecture": {
299
+ "tasks_per_node": 2,
300
+ "cpus_per_task": 1,
301
+ "type": "slurm",
302
+ "sjobexitmod": false
303
+ },
304
+ "mpirun": {
305
+ "openmpi": {
306
+ "options": [
307
+ "--bind-to core",
308
+ "--map-by core",
309
+ "--oversubscribe"
310
+ ]
311
+ }
312
+ },
313
+ "jobThreads": 1,
314
+ "testMaxTasks": 12,
315
+ "installation": {
316
+ "modulePath": "/etc/modulefiles/",
317
+ "applicationPath": "/opt/ALYA",
318
+ "pythonPath": "/usr/bin"
319
+ },
320
+ "alya-mpio-tools": {
321
+ "modules": []
322
+ },
323
+ "queues": {
324
+ "builds": "aws",
325
+ "tests": "aws",
326
+ "benchmarks": "aws",
327
+ "flex": "aws",
328
+ "install": "aws",
329
+ "default": "aws"
330
+ },
331
+ "partition": {},
332
+ "qos": {},
333
+ "reservation": {
334
+ "enable": false
335
+ },
336
+ "host": "",
337
+ "timeOffset": "00:10:00",
338
+ "merge": true
339
+ }
340
+ }
341
+ },
285
342
  "aws-ec2-t3.small-x3": {
286
343
  "host": "t3.small",
287
344
  "path": "/shared/fedora/squidient",
@@ -0,0 +1,2 @@
1
+ .terraform*
2
+ terraform.tfstate*
@@ -0,0 +1,321 @@
1
+ #!/bin/bash
2
+ set -eux
3
+
4
+ # ------------------------------------------------------------
5
+ # Role and topology (filled by Terraform via templatefile)
6
+ # ------------------------------------------------------------
7
+ ROLE="${ROLE}"
8
+ HEAD_HOSTNAME="${HEAD_HOSTNAME}"
9
+ COMPUTE_HOSTNAME="${COMPUTE_HOSTNAME}"
10
+ HEAD_PRIVATE_IP="${HEAD_PRIVATE_IP}"
11
+ COMPUTE_NODE_LIST="${COMPUTE_NODE_LIST}"
12
+
13
+ # ------------------------------------------------------------
14
+ # Hostname setup
15
+ # ------------------------------------------------------------
16
+ if [ "${ROLE}" = "head" ]; then
17
+ hostnamectl set-hostname "${HEAD_HOSTNAME}"
18
+ else
19
+ hostnamectl set-hostname "${COMPUTE_HOSTNAME}"
20
+ fi
21
+
22
+ HOSTNAME="$(hostname)"
23
+
24
+ # ------------------------------------------------------------
25
+ # Basic networking
26
+ # ------------------------------------------------------------
27
+ if [ "${ROLE}" = "head" ]; then
28
+ HEAD_IP="$(hostname -I | awk '{print $1}')"
29
+ if ! grep -q " ${HEAD_HOSTNAME}\b" /etc/hosts; then
30
+ echo "$HEAD_IP ${HEAD_HOSTNAME}" >> /etc/hosts
31
+ fi
32
+ else
33
+ if [ -n "${HEAD_PRIVATE_IP}" ] && ! grep -q " ${HEAD_HOSTNAME}\b" /etc/hosts; then
34
+ echo "${HEAD_PRIVATE_IP} ${HEAD_HOSTNAME}" >> /etc/hosts
35
+ fi
36
+ COMPUTE_IP="$(hostname -I | awk '{print $1}')"
37
+ if [ -n "$COMPUTE_IP" ] && ! grep -q " ${COMPUTE_HOSTNAME}\b" /etc/hosts; then
38
+ echo "$COMPUTE_IP ${COMPUTE_HOSTNAME}" >> /etc/hosts
39
+ fi
40
+ fi
41
+
42
+ # ------------------------------------------------------------
43
+ # Install base packages
44
+ # ------------------------------------------------------------
45
+ dnf -y update
46
+
47
+ dnf -y install \
48
+ slurm slurm-slurmctld slurm-slurmd \
49
+ munge munge-libs munge-devel \
50
+ cmake gcc gcc-c++ gcc-gfortran \
51
+ git make perl wget \
52
+ python3 python3-pip \
53
+ diffutils which \
54
+ tar gzip bzip2 \
55
+ zlib-devel openssl-devel \
56
+ boost-devel \
57
+ libibverbs rdma-core \
58
+ numactl numactl-devel \
59
+ environment-modules \
60
+ nfs-utils
61
+
62
+ chmod 755 /
63
+ chmod 755 /var
64
+ chmod 755 /var/lib
65
+
66
+ # ------------------------------------------------------------
67
+ # NFS server + client handling (durci)
68
+ # ------------------------------------------------------------
69
+ mkdir -p /shared
70
+
71
+ if [ "${ROLE}" = "head" ]; then
72
+
73
+ chmod 777 /shared
74
+
75
+ cat >/etc/exports <<EOF
76
+ /shared *(rw,sync,no_subtree_check,no_root_squash,fsid=0)
77
+ EOF
78
+
79
+ systemctl enable nfs-idmapd || true
80
+ systemctl start nfs-idmapd || true
81
+
82
+ exportfs -ra
83
+
84
+ systemctl enable --now nfs-server
85
+
86
+ # Register all compute node addresses after slurmctld starts
87
+ cat >/usr/local/sbin/refresh-slurm-nodeaddrs.sh << 'EOS'
88
+ #!/bin/bash
89
+ set -eux
90
+
91
+ HEAD_HOSTNAME="slurm-head"
92
+ HEAD_IP="$(hostname -I | awk '{print $1}')"
93
+
94
+ # Wait for slurmctld
95
+ for i in $(seq 1 60); do
96
+ if systemctl is-active --quiet slurmctld; then break; fi
97
+ sleep 2
98
+ done
99
+
100
+ # Ensure head is in /etc/hosts
101
+ if ! grep -q " $HEAD_HOSTNAME\b" /etc/hosts; then
102
+ echo "$HEAD_IP $HEAD_HOSTNAME" >> /etc/hosts
103
+ fi
104
+
105
+ # Wait for all declared compute nodes, not only the first one.
106
+ for i in $(seq 1 60); do
107
+ all_ready=true
108
+
109
+ for node in ${COMPUTE_NODE_LIST}; do
110
+ ipfile="/shared/$node.ip"
111
+ if [ ! -f "$ipfile" ]; then
112
+ all_ready=false
113
+ continue
114
+ fi
115
+ ip="$(awk '{print $1}' "$ipfile")"
116
+ if [ -z "$ip" ]; then
117
+ all_ready=false
118
+ continue
119
+ fi
120
+
121
+ if ! grep -q " $node\\b" /etc/hosts; then
122
+ echo "$ip $node" >> /etc/hosts
123
+ fi
124
+
125
+ if ! scontrol update NodeName="$node" NodeAddr="$ip"; then
126
+ all_ready=false
127
+ fi
128
+ done
129
+
130
+ if $all_ready; then exit 0; fi
131
+ sleep 3
132
+ done
133
+
134
+ echo "Compute node address registration timed out" >&2
135
+ exit 1
136
+ EOS
137
+
138
+ chmod +x /usr/local/sbin/refresh-slurm-nodeaddrs.sh
139
+
140
+ else
141
+ # Client NFS durci
142
+ if [ -n "${HEAD_PRIVATE_IP}" ]; then
143
+
144
+ if ! grep -q "/shared " /etc/fstab; then
145
+ echo "${HEAD_PRIVATE_IP}:/shared /shared nfs vers=3,noac,actimeo=0,timeo=600,retrans=5,_netdev 0 0" >> /etc/fstab
146
+ fi
147
+
148
+ for i in $(seq 1 40); do
149
+ if mountpoint -q /shared; then break; fi
150
+
151
+ mount -t nfs -o vers=3,noac,actimeo=0,timeo=600,retrans=5 "${HEAD_PRIVATE_IP}:/shared" /shared && break || true
152
+ mount -t nfs -o vers=4 "${HEAD_PRIVATE_IP}:/shared" /shared && break || true
153
+
154
+ sleep 3
155
+ done
156
+
157
+ if mountpoint -q /shared; then
158
+ COMPUTE_IP="$(hostname -I | awk '{print $1}')"
159
+ echo "$COMPUTE_IP" > "/shared/${COMPUTE_HOSTNAME}.ip" || true
160
+ fi
161
+ fi
162
+ fi
163
+
164
+ # ------------------------------------------------------------
165
+ # Munge setup
166
+ # ------------------------------------------------------------
167
+ mkdir -p /etc/munge /var/lib/munge /var/log/munge
168
+
169
+ if [ "${ROLE}" = "head" ]; then
170
+ if [ ! -f /etc/munge/munge.key ]; then
171
+ if command -v create-munge-key >/dev/null 2>&1; then
172
+ create-munge-key
173
+ else
174
+ dd if=/dev/urandom bs=1 count=1024 of=/etc/munge/munge.key
175
+ fi
176
+ fi
177
+ cp /etc/munge/munge.key /shared/munge.key || true
178
+ else
179
+ for i in $(seq 1 30); do
180
+ if [ -f /shared/munge.key ]; then
181
+ cp /shared/munge.key /etc/munge/munge.key
182
+ break
183
+ fi
184
+ sleep 2
185
+ done
186
+
187
+ if [ ! -f /etc/munge/munge.key ]; then
188
+ if command -v create-munge-key >/dev/null 2>&1; then
189
+ create-munge-key
190
+ else
191
+ dd if=/dev/urandom bs=1 count=1024 of=/etc/munge/munge.key
192
+ fi
193
+ fi
194
+ fi
195
+
196
+ chown munge:munge /etc/munge/munge.key
197
+ chmod 600 /etc/munge/munge.key
198
+ chown -R munge:munge /etc/munge /var/lib/munge /var/log/munge
199
+ chmod 700 /var/lib/munge /var/log/munge
200
+
201
+ systemctl enable munge
202
+ systemctl start munge
203
+
204
+ # ------------------------------------------------------------
205
+ # Slurm dynamic config
206
+ # ------------------------------------------------------------
207
+ if ! getent group slurm >/dev/null; then
208
+ groupadd -r slurm
209
+ fi
210
+ if ! id -u slurm >/dev/null 2>&1; then
211
+ useradd -r -g slurm -d /var/lib/slurm -s /sbin/nologin slurm
212
+ fi
213
+
214
+ mkdir -p /var/spool/slurm /var/spool/slurmd /var/log/slurm /var/lib/slurm /etc/slurm
215
+ chown -R slurm:slurm /var/spool/slurm /var/spool/slurmd /var/log/slurm /var/lib/slurm
216
+
217
+ LOCAL_CPUS="$(nproc)"
218
+ SLURM_CONF="/etc/slurm/slurm.conf"
219
+
220
+ # Slurm configuration header
221
+ cat >"$SLURM_CONF" <<EOF
222
+ ClusterName=squidient-aws
223
+ ControlMachine=${HEAD_HOSTNAME}
224
+
225
+ SlurmUser=slurm
226
+ SlurmctldPort=6817
227
+ SlurmdPort=6818
228
+ StateSaveLocation=/var/spool/slurm
229
+ SlurmdSpoolDir=/var/spool/slurmd
230
+ SlurmctldTimeout=300
231
+ SlurmdTimeout=300
232
+ SchedulerType=sched/backfill
233
+ SelectType=select/cons_tres
234
+
235
+ EOF
236
+
237
+ # Lignes NodeName
238
+ echo "NodeName=${HEAD_HOSTNAME} CPUs=$LOCAL_CPUS State=UNKNOWN" >>"$SLURM_CONF"
239
+ if [ -n "${COMPUTE_NODE_LIST}" ]; then
240
+ for node in ${COMPUTE_NODE_LIST}; do
241
+ echo "NodeName=$node CPUs=$LOCAL_CPUS State=UNKNOWN" >>"$SLURM_CONF"
242
+ done
243
+ fi
244
+
245
+ echo "" >>"$SLURM_CONF"
246
+
247
+ # Partition debug
248
+ PARTITION_NODES="${HEAD_HOSTNAME}"
249
+ if [ -n "${COMPUTE_NODE_LIST}" ]; then
250
+ for node in ${COMPUTE_NODE_LIST}; do
251
+ PARTITION_NODES="$PARTITION_NODES,$node"
252
+ done
253
+ fi
254
+
255
+ echo "PartitionName=debug Nodes=$PARTITION_NODES Default=YES MaxTime=INFINITE State=UP" >>"$SLURM_CONF"
256
+
257
+ chown slurm:slurm "$SLURM_CONF"
258
+
259
+ # ------------------------------------------------------------
260
+ # OpenMPI + alya-mpio-tools (HEAD ONLY)
261
+ # ------------------------------------------------------------
262
+ if [ "${ROLE}" = "head" ]; then
263
+ OMPI_VERSION="4.1.6"
264
+ OMPI_PREFIX="/shared/openmpi"
265
+
266
+ cd /tmp
267
+ wget "https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-$OMPI_VERSION.tar.gz"
268
+ tar -xvf "openmpi-$OMPI_VERSION.tar.gz"
269
+ cd "openmpi-$OMPI_VERSION"
270
+
271
+ ./configure --prefix="$OMPI_PREFIX" --enable-mpirun-prefix-by-default
272
+ make -j"$(nproc)"
273
+ make install
274
+
275
+ # Use this OpenMPI installation
276
+ export PATH="$OMPI_PREFIX/bin:$PATH"
277
+
278
+ ALYA_MPIO_SRC="/shared/alya-mpio-tools-src"
279
+ ALYA_MPIO_INSTALL="/shared/alya-mpio-tools"
280
+
281
+ git clone --depth 1 https://alya.gitlab.bsc.es/alya/alya-mpio-tools.git "$ALYA_MPIO_SRC" || true
282
+
283
+ cd "$ALYA_MPIO_SRC"
284
+ mkdir -p build
285
+ cd build
286
+
287
+ cmake .. \
288
+ -DCMAKE_C_COMPILER=mpicc \
289
+ -DCMAKE_CXX_COMPILER=mpicxx \
290
+ -DMPIEXEC_PREFLAGS="--allow-run-as-root;--oversubscribe" \
291
+ -DUSE_VTK=OFF \
292
+ -DUSE_SFC=OFF \
293
+ -DCMAKE_INSTALL_PREFIX="$ALYA_MPIO_INSTALL"
294
+
295
+ make -j"$(nproc)"
296
+ make install
297
+ fi
298
+
299
+ # ------------------------------------------------------------
300
+ # Shared environment for MPI + alya-mpio-tools (ALL NODES)
301
+ # ------------------------------------------------------------
302
+ cat >/etc/profile.d/shared-hpc-env.sh <<'EOF'
303
+ export PATH=/shared/openmpi/bin:/shared/alya-mpio-tools/bin:$PATH
304
+ export LD_LIBRARY_PATH=/shared/openmpi/lib:$LD_LIBRARY_PATH
305
+ EOF
306
+
307
+ chmod +x /etc/profile.d/shared-hpc-env.sh
308
+
309
+ # ------------------------------------------------------------
310
+ # Start Slurm daemons
311
+ # ------------------------------------------------------------
312
+ if [ "${ROLE}" = "head" ]; then
313
+ systemctl enable slurmctld
314
+ systemctl start slurmctld
315
+ /usr/local/sbin/refresh-slurm-nodeaddrs.sh >/var/log/refresh-slurm-nodeaddrs.log 2>&1
316
+ else
317
+ systemctl disable slurmctld || true
318
+ fi
319
+
320
+ systemctl enable slurmd
321
+ systemctl start slurmd
@@ -0,0 +1,170 @@
1
+ terraform {
2
+ required_version = ">= 1.6.0"
3
+
4
+ required_providers {
5
+ aws = {
6
+ source = "hashicorp/aws"
7
+ version = "~> 5.0"
8
+ }
9
+ }
10
+ }
11
+
12
+ provider "aws" {
13
+ region = "eu-west-3"
14
+ }
15
+
16
+ variable "fedora_ami_id" {
17
+ description = "Fedora Cloud AMI ID in eu-west-3"
18
+ type = string
19
+ }
20
+
21
+ # List of compute node hostnames.
22
+ # Six EC2 instances in total: one head and five compute nodes.
23
+ variable "compute_nodes" {
24
+ type = list(string)
25
+ default = ["slurm-node1", "slurm-node2", "slurm-node3", "slurm-node4", "slurm-node5"]
26
+ }
27
+
28
+ # Primary compute node name used in slurm.conf generated on the head
29
+ locals {
30
+ primary_compute = var.compute_nodes[0]
31
+ }
32
+
33
+ resource "aws_key_pair" "hpc" {
34
+ key_name = "hpc-key-x6"
35
+ public_key = file("${path.module}/.ssh/t3.small.pub")
36
+ }
37
+
38
+ data "aws_vpc" "default" {
39
+ default = true
40
+ }
41
+
42
+ data "aws_subnets" "default" {
43
+ filter {
44
+ name = "vpc-id"
45
+ values = [data.aws_vpc.default.id]
46
+ }
47
+ }
48
+
49
+ resource "aws_security_group" "hpc_ssh" {
50
+ name = "hpc-ssh-x6"
51
+ description = "SSH + internal comms for HPC cluster"
52
+ vpc_id = data.aws_vpc.default.id
53
+
54
+ # SSH from everywhere (OK for tests, not prod)
55
+ ingress {
56
+ from_port = 22
57
+ to_port = 22
58
+ protocol = "tcp"
59
+ cidr_blocks = ["0.0.0.0/0"]
60
+ }
61
+
62
+ # Head <-> compute comms (Slurm/MPI/NFS): allow all inside the VPC
63
+ ingress {
64
+ from_port = 0
65
+ to_port = 0
66
+ protocol = "-1"
67
+ cidr_blocks = [data.aws_vpc.default.cidr_block]
68
+ }
69
+
70
+ # Outbound: allow everything (updates, git, etc.)
71
+ egress {
72
+ from_port = 0
73
+ to_port = 0
74
+ protocol = "-1"
75
+ cidr_blocks = ["0.0.0.0/0"]
76
+ }
77
+ }
78
+
79
+ # ---------------------- HEAD -------------------------
80
+ resource "aws_instance" "slurm_head" {
81
+ ami = var.fedora_ami_id
82
+ instance_type = "t3.small"
83
+
84
+ root_block_device {
85
+ volume_size = 30
86
+ volume_type = "gp3"
87
+ delete_on_termination = true
88
+ }
89
+
90
+ subnet_id = data.aws_subnets.default.ids[0]
91
+ vpc_security_group_ids = [aws_security_group.hpc_ssh.id]
92
+ key_name = aws_key_pair.hpc.key_name
93
+
94
+ associate_public_ip_address = true
95
+
96
+ # Head gets a single "primary" compute hostname for its slurm.conf
97
+ user_data = templatefile(
98
+ "${path.module}/cloud-init-slurm-fedora.sh",
99
+ {
100
+ ROLE = "head"
101
+ HEAD_HOSTNAME = "slurm-head"
102
+ COMPUTE_HOSTNAME = local.primary_compute
103
+ HEAD_PRIVATE_IP = "0.0.0.0"
104
+ COMPUTE_NODE_LIST = join(" ", var.compute_nodes)
105
+ }
106
+ )
107
+
108
+ tags = {
109
+ Name = "hpc-slurm-head-fedora-x6"
110
+ }
111
+ }
112
+
113
+ # -------------------- COMPUTES (for_each) ------------------------
114
+ resource "aws_instance" "slurm_compute" {
115
+ for_each = toset(var.compute_nodes)
116
+ ami = var.fedora_ami_id
117
+ instance_type = "t3.small"
118
+
119
+ root_block_device {
120
+ volume_size = 30
121
+ volume_type = "gp3"
122
+ delete_on_termination = true
123
+ }
124
+
125
+ subnet_id = data.aws_subnets.default.ids[0]
126
+ vpc_security_group_ids = [aws_security_group.hpc_ssh.id]
127
+ key_name = aws_key_pair.hpc.key_name
128
+
129
+ associate_public_ip_address = true
130
+
131
+ depends_on = [aws_instance.slurm_head]
132
+
133
+ user_data = templatefile(
134
+ "${path.module}/cloud-init-slurm-fedora.sh",
135
+ {
136
+ ROLE = "compute"
137
+ HEAD_HOSTNAME = "slurm-head"
138
+ COMPUTE_HOSTNAME = each.key
139
+ HEAD_PRIVATE_IP = aws_instance.slurm_head.private_ip
140
+ COMPUTE_NODE_LIST = join(" ", var.compute_nodes)
141
+ }
142
+ )
143
+
144
+ tags = {
145
+ Name = "hpc-${each.key}-fedora-x6"
146
+ }
147
+ }
148
+
149
+ # -------------------- OUTPUTS ------------------------
150
+
151
+ output "head_public_ip" {
152
+ description = "Public IP of the Slurm head node"
153
+ value = aws_instance.slurm_head.public_ip
154
+ }
155
+
156
+ output "compute_public_ips" {
157
+ description = "Public IPs of compute nodes (by hostname)"
158
+ value = { for name, inst in aws_instance.slurm_compute : name => inst.public_ip }
159
+ }
160
+
161
+ output "ssh_head" {
162
+ value = "ssh -i ./.ssh/t3.small fedora@${aws_instance.slurm_head.public_ip}"
163
+ }
164
+
165
+ output "ssh_compute_examples" {
166
+ value = {
167
+ for name, inst in aws_instance.slurm_compute :
168
+ name => "ssh -i ./.ssh/t3.small fedora@${inst.public_ip}"
169
+ }
170
+ }
@@ -0,0 +1,2 @@
1
+ fedora_ami_id = "ami-000a61fce24b26066"
2
+ compute_nodes = ["slurm-node1", "slurm-node2", "slurm-node3", "slurm-node4", "slurm-node5"]
File without changes
File without changes
File without changes