File tree Expand file tree Collapse file tree 9 files changed +21
-40
lines changed Expand file tree Collapse file tree 9 files changed +21
-40
lines changed Original file line number Diff line number Diff line change 88 - ' environments/.stackhpc/terraform/cluster_image.auto.tfvars.json'
99 - ' ansible/roles/doca/**'
1010 - ' ansible/roles/cuda/**'
11+ - ' ansible/roles/lustre/**'
1112 - ' .github/workflows/extra.yml'
1213 pull_request :
1314 paths :
1415 - ' environments/.stackhpc/terraform/cluster_image.auto.tfvars.json'
1516 - ' ansible/roles/doca/**'
1617 - ' ansible/roles/cuda/**'
18+ - ' ansible/roles/lustre/**'
1719 - ' .github/workflows/extra.yml'
1820
1921jobs :
@@ -29,11 +31,11 @@ jobs:
2931 build :
3032 - image_name : openhpc-extra-RL8
3133 source_image_name_key : RL8 # key into environments/.stackhpc/terraform/cluster_image.auto.tfvars.json
32- inventory_groups : doca,cuda
34+ inventory_groups : doca,cuda,lustre
3335 volume_size : 30 # needed for cuda
3436 - image_name : openhpc-extra-RL9
3537 source_image_name_key : RL9
36- inventory_groups : doca,cuda
38+ inventory_groups : doca,cuda,lustre
3739 volume_size : 30 # needed for cuda
3840 env :
3941 ANSIBLE_FORCE_COLOR : True
Original file line number Diff line number Diff line change 230230 name : cloudalchemy.grafana
231231 tasks_from : install.yml
232232
233- - hosts : doca
234- become : yes
235- gather_facts : yes
236- tasks :
237- - name : Install NVIDIA DOCA
238- import_role :
239- name : doca
240-
241233- name : Run post.yml hook
242234 vars :
243235 appliances_environment_root : " {{ lookup('env', 'APPLIANCES_ENVIRONMENT_ROOT') }}"
Original file line number Diff line number Diff line change @@ -41,6 +41,9 @@ def to_ood_regex(items):
4141 eg {{ [compute-001, compute-002, control] | to_regex }} -> '(compute-\d+)|(control)'
4242 """
4343
44+ # NB: for python3.12+ the \d in this function & docstring
45+ # need to be raw strings. See https://docs.python.org/3/reference/lexical_analysis.html
46+
4447 # There's a python bug which means re.sub() can't use '\d' in the replacement so
4548 # have to do replacement in two stages:
4649 r = [re .sub (r"\d+" , 'XBACKSLASHX' , v ) for v in items ]
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ Install and configure a Lustre client. This builds RPM packages from source.
88
99## Role Variables
1010
11- - ` lustre_version ` : Optional str. Version of lustre to build, default ` 2.15.5 ` which is the first version with EL9 support
11+ - ` lustre_version ` : Optional str. Version of lustre to build, default ` 2.15.6 ` which is the first version with EL9.5 support
1212- ` lustre_lnet_label ` : Optional str. The "lnet label" part of the host's NID, e.g. ` tcp0 ` . Only the ` tcp ` protocol type is currently supported. Default ` tcp ` .
1313- ` lustre_mgs_nid ` : Required str. The NID(s) for the MGS, e.g. ` 192.168.227.11@tcp1 ` (separate mutiple MGS NIDs using ` : ` ).
1414- ` lustre_mounts ` : Required list. Define Lustre filesystems and mountpoints as a list of dicts with keys:
Original file line number Diff line number Diff line change 1- lustre_version : ' 2.15.5 ' # https://www.lustre.org/lustre-2-15-5 -released/
1+ lustre_version : ' 2.15.6 ' # https://www.lustre.org/lustre-2-15-6 -released/
22lustre_lnet_label : tcp
33# lustre_mgs_nid:
44lustre_mounts : []
Original file line number Diff line number Diff line change 4141 ansible.builtin.dnf :
4242 name : " {{ _lustre_find_rpms.files | map(attribute='path')}}"
4343 disable_gpg_check : yes
44-
45- - block :
46- - name : Remove lustre build prerequisites
47- # NB Only remove ones this role installed which weren't upgrades
48- ansible.builtin.dnf :
49- name : " {{ _new_pkgs }}"
50- state : absent
51- vars :
52- _installed_pkgs : |
53- {{
54- _lustre_dnf_build_packages.results |
55- select('match', 'Installed:') |
56- map('regex_replace', '^Installed: (.+?)-[0-9].*$', '\1')
57- }}
58- _removed_pkgs : |
59- {{
60- _lustre_dnf_build_packages.results |
61- select('match', 'Removed:') |
62- map('regex_replace', '^Removed: (.+?)-[0-9].*$', '\1')
63- }}
64- _new_pkgs : " {{ _installed_pkgs | difference(_removed_pkgs) }}"
65-
66- - name : Delete lustre build dir
67- file :
68- path : " {{ lustre_build_dir }}"
69- state : absent
44+
45+ - name : Delete lustre build dir
46+ file :
47+ path : " {{ lustre_build_dir }}"
48+ state : absent
7049 when : lustre_build_cleanup | bool
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ PYTHON_VERSION=""
1717if [[ " $OS " == " ubuntu" && " $MAJOR_VERSION " == " 22" ]]; then
1818 PYTHON_VERSION=" /usr/bin/python3.10"
1919elif [[ " $OS " == " rocky" && " $MAJOR_VERSION " == " 8" ]]; then
20+ # python3.9+ doesn't have selinux bindings
2021 PYTHON_VERSION=" /usr/bin/python3.8" # use `sudo yum install python38` on Rocky Linux 8 to install this
2122elif [[ " $OS " == " rocky" && " $MAJOR_VERSION " == " 9" ]]; then
2223 PYTHON_VERSION=" /usr/bin/python3.9"
Original file line number Diff line number Diff line change 1- ansible == 8.0.0
1+ ansible == 6.7.0 # cloudalchemy.prometheus uses ansible.builtin.include, removed in ansible-core==2.16 => ansible==9
22openstacksdk
33python-openstackclient == 6.6.1 # v7.0.0 has a bug re. rebuild
44python-manilaclient
@@ -9,5 +9,5 @@ cookiecutter
99selinux # this is a shim to avoid having to use --system-site-packages, you still need sudo yum install libselinux-python3
1010netaddr
1111matplotlib
12- pulp-cli == 0.29 .2
12+ pulp-cli == 0.23 .2
1313beautifulsoup4 == 4.12.3
Original file line number Diff line number Diff line change @@ -49,6 +49,10 @@ collections:
4949 - name : https://github.com/azimuth-cloud/ansible-collection-image-utils
5050 type : git
5151 version : 0.4.0
52+ # stackhpc.pulp has pulp.squeezer as dependency, any version, but latest
53+ # requires newer ansible than can install
54+ - name : pulp.squeezer
55+ version : 0.0.15
5256 - name : stackhpc.pulp
5357 version : 0.5.5
5458...
You can’t perform that action at this time.
0 commit comments