Skip to content

Commit ae6eb49

Browse files
committed
Build DOCA-OFED kernel modules for Rocky 10
DOCA OFED support has now been added for Rocky 10: * Build workflow updated to include Rocky 10 (x86_64 and aarch64 builds) * Rocky 9.6 to 9.7 OFED upgrade playbook hardcoded to use 9.7 kernel * Installation playbook now uses host distribution version * Retries added to pulp pushing playbook * Pulp pushing playbook can now handle multiple OFED repositories (for Rocky 9 and 10) being defined * Updates to Pulp, repository and OFED tag definitions, to handle both Rocky 9 and 10
1 parent 1e2e8cf commit ae6eb49

12 files changed

Lines changed: 175 additions & 337 deletions

File tree

.github/workflows/package-build-ofed.yml

Lines changed: 65 additions & 272 deletions
Large diffs are not rendered by default.

etc/kayobe/ansible/maintenance/rocky-97-ofed-upgrade.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# we don't build kernel modules for each version, eg 5.14.0-611.13.1 has been built,
1919
# but not 5.14.0-611.20.1.
2020
doca_kernel_arch: "{{ 'x86.64' if ansible_facts.architecture == 'x86_64' else ansible_facts.architecture }}"
21-
doca_kernel_version: "{{ stackhpc_doca_kernel_version_matrix[stackhpc_pulp_repo_rocky_9_minor_version | string] }}.{{ doca_kernel_arch }}"
21+
doca_kernel_version: "{{ stackhpc_doca_kernel_version_matrix['9.7'] }}.{{ doca_kernel_arch }}"
2222
tasks:
2323
- name: Assert that hosts are running Rocky Linux 9.6
2424
ansible.builtin.assert:

etc/kayobe/ansible/tools/build-ofed-rocky.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
changed_when: false
1313
check_mode: true
1414
register: result
15-
failed_when: result.found
15+
failed_when: result.found > 0
1616

1717
- name: Install package dependencies
1818
ansible.builtin.dnf:

etc/kayobe/ansible/tools/install-doca.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# we don't build kernel modules for each version, eg 5.14.0-611.13.1 has been built,
88
# but not 5.14.0-611.20.1
99
doca_kernel_arch: "{{ 'x86.64' if ansible_facts.architecture == 'x86_64' else ansible_facts.architecture }}"
10-
doca_kernel_version: "{{ stackhpc_doca_kernel_version_matrix[stackhpc_pulp_repo_rocky_9_minor_version | string] }}.{{ doca_kernel_arch }}"
10+
doca_kernel_version: "{{ stackhpc_doca_kernel_version_matrix[ansible_facts.distribution_version | string] }}.{{ doca_kernel_arch }}"
1111
tasks:
1212
- name: Install kernel repo
1313
ansible.builtin.dnf:

etc/kayobe/ansible/tools/push-ofed.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
tasks:
88
- name: Get OFED module repo
99
ansible.builtin.set_fact:
10-
doca_modules_repos: "{{ stackhpc_pulp_rpm_repos | selectattr('name', 'search', 'OFED') | selectattr('base_path', 'search', '/' ~ kolla_base_arch ~ '/') | list }}"
10+
doca_modules_repos: "{{ stackhpc_pulp_rpm_repos | selectattr('name', 'search', 'OFED') | selectattr('base_path', 'search', '/rhel' ~ os_release) | selectattr('base_path', 'search', '/' ~ os_arch ~ '/') | list }}"
1111

1212
- name: Assert OFED module repo is unique
1313
ansible.builtin.assert:
1414
that:
1515
- doca_modules_repos | length == 1
16-
fail_msg: "Expected exactly one OFED module repo for {{ kolla_base_arch }}"
16+
fail_msg: "Expected exactly one OFED module repo for {{ os_arch }}"
1717

1818
- name: Get OFED module repo variables
1919
ansible.builtin.set_fact:
@@ -46,7 +46,10 @@
4646
password: "{{ stackhpc_release_pulp_password }}"
4747
name: "{{ doca_modules_repo_name }}"
4848
state: present
49-
retries: "{{ pulp_timeout_retries | default(3) }}"
49+
register: repository
50+
until: repository is success
51+
retries: "{{ pulp_timeout_retries | default(3) | int }}"
52+
delay: "{{ pulp_delay | default(5) | int }}"
5053

5154
- name: Upload OFED RPMs to Pulp
5255
pulp.squeezer.rpm_package:
@@ -59,6 +62,9 @@
5962
state: present
6063
with_items: "{{ doca_kernel_repo.stdout_lines }}"
6164
register: package
65+
until: package is success
66+
retries: "{{ pulp_timeout_retries | default(3) | int }}"
67+
delay: "{{ pulp_delay | default(5) | int }}"
6268

6369
- name: Create Pulp publication for OFED
6470
pulp.squeezer.rpm_publication:

etc/kayobe/dnf.yml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ stackhpc_dnf_repos:
5555
dnf_custom_repos_doca_rocky_9:
5656
doca:
5757
baseurl: "{{ stackhpc_repo_rhel9_doca_url }}"
58-
description: "DOCA Online Repo {{ stackhpc_pulp_doca_version }} - RHEL $releasever"
58+
description: "DOCA Online Repo {{ stackhpc_pulp_rocky_9_doca_version }} - RHEL $releasever"
5959
enabled: "{{ dnf_enable_doca | bool | default(false) }}"
6060
priority: -1
6161
file: doca
@@ -64,7 +64,7 @@ dnf_custom_repos_doca_rocky_9:
6464
password: "{{ stackhpc_repo_mirror_password | default(omit, true) }}"
6565
doca-modules:
6666
baseurl: "{{ stackhpc_repo_rhel9_doca_modules_url }}"
67-
description: "OFED Kernel module repository for DOCA {{ stackhpc_pulp_doca_version }} - RHEL $releasever"
67+
description: "OFED Kernel module repository for DOCA {{ stackhpc_pulp_rocky_9_doca_version }} - RHEL $releasever"
6868
enabled: "{{ dnf_enable_doca_modules | bool | default(false) }}"
6969
priority: -1
7070
file: doca
@@ -75,23 +75,22 @@ dnf_custom_repos_doca_rocky_9:
7575
dnf_custom_repos_doca_rocky_10:
7676
doca:
7777
baseurl: "{{ stackhpc_repo_rhel10_doca_url }}"
78-
description: "DOCA Online Repo {{ stackhpc_pulp_doca_version }} - RHEL $releasever"
78+
description: "DOCA Online Repo {{ stackhpc_pulp_rocky_10_doca_version }} - RHEL $releasever"
7979
enabled: "{{ dnf_enable_doca | bool | default(false) }}"
8080
priority: -1
8181
file: doca
8282
gpgcheck: no
8383
username: "{{ stackhpc_repo_mirror_username | default(omit, true) }}"
8484
password: "{{ stackhpc_repo_mirror_password | default(omit, true) }}"
85-
# TODO(owenjones): update this once repo for Rocky 10 has been created in Pulp
86-
# doca-modules:
87-
# baseurl: "{{ stackhpc_repo_rhel9_doca_modules_url }}"
88-
# description: "OFED Kernel module repository for DOCA {{ stackhpc_pulp_doca_version }} - RHEL $releasever"
89-
# enabled: "{{ dnf_enable_doca_modules | bool | default(false) }}"
90-
# priority: -1
91-
# file: doca
92-
# gpgcheck: no
93-
# username: "{{ stackhpc_repo_mirror_username | default(omit, true) }}"
94-
# password: "{{ stackhpc_repo_mirror_password | default(omit, true) }}"
85+
doca-modules:
86+
baseurl: "{{ stackhpc_repo_rhel10_doca_modules_url }}"
87+
description: "OFED Kernel module repository for DOCA {{ stackhpc_pulp_rocky_10_doca_version }} - RHEL $releasever"
88+
enabled: "{{ dnf_enable_doca_modules | bool | default(false) }}"
89+
priority: -1
90+
file: doca
91+
gpgcheck: no
92+
username: "{{ stackhpc_repo_mirror_username | default(omit, true) }}"
93+
password: "{{ stackhpc_repo_mirror_password | default(omit, true) }}"
9594

9695
# Custom repositories shared between all RHEL 9/10 derivatives.
9796
dnf_custom_repos_el9:

etc/kayobe/environments/aio/release-train.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ stackhpc_repo_rhel_10_mariadb_10_11_version: "{{ stackhpc_pulp_repo_multiarch_rh
4747
stackhpc_repo_rhel_9_influxdb_version: "{{ stackhpc_pulp_repo_multiarch_rhel_9_influxdb_version }}"
4848
stackhpc_repo_rhel_9_mariadb_10_11_version: "{{ stackhpc_pulp_repo_multiarch_rhel_9_mariadb_10_11_version }}"
4949
stackhpc_repo_rhel_9_treasuredata_5_version: "{{ stackhpc_pulp_repo_multiarch_rhel_9_treasuredata_5_version }}"
50+
stackhpc_repo_rhel10_doca_modules_version: "{{ stackhpc_pulp_repo_rhel10_doca_modules_version }}"
5051
stackhpc_repo_rhel10_doca_version: "{{ stackhpc_pulp_repo_rhel10_doca_version }}"
5152
stackhpc_repo_rhel9_doca_modules_version: "{{ stackhpc_pulp_repo_rhel9_doca_modules_version }}"
5253
stackhpc_repo_rhel9_doca_version: "{{ stackhpc_pulp_repo_rhel9_doca_version }}"

etc/kayobe/ofed.yml

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,21 @@
44
###############################################################################
55
# DOCA host version
66
stackhpc_pulp_doca_version_matrix:
7-
"6": 2.9.3
8-
"7": 3.2.2
9-
stackhpc_pulp_doca_version: "{{ stackhpc_pulp_doca_version_matrix[stackhpc_pulp_repo_rocky_9_minor_version | string] | default('2.9.1') }}"
7+
"9.6": '2.9.3'
8+
"9.7": '3.2.2'
9+
"10.2": '3.2.2'
10+
11+
doca_rocky_9_release: 9.{{ stackhpc_pulp_repo_rocky_9_minor_version | string }}
12+
doca_rocky_10_release: 10.{{stackhpc_pulp_repo_rocky_10_minor_version | string }}
13+
14+
stackhpc_pulp_rocky_9_doca_version: "{{ stackhpc_pulp_doca_version_matrix[doca_rocky_9_release] | default('2.9.3') }}"
15+
stackhpc_pulp_rocky_10_doca_version: "{{ stackhpc_pulp_doca_version_matrix[doca_rocky_10_release] | default('3.2.2') }}"
1016

1117
# Available and tested versions of the pre-compiled doca-ofed kernel modules
1218
stackhpc_doca_kernel_version_matrix:
13-
"6": 5.14.0.570.21.1.el9.6
14-
"7": 5.14.0.611.55.1.el9.7
19+
"9.6": 5.14.0.570.21.1.el9.6
20+
"9.7": 5.14.0.611.55.1.el9.7
21+
"10.2": 6.12.0.211.16.1.el10.2.0.1
1522

1623
###############################################################################
1724
# Pulp configuration for DOCA OFED
@@ -20,19 +27,29 @@ stackhpc_doca_kernel_version_matrix:
2027
stackhpc_pulp_sync_ofed: "{{ groups['mlnx'] | length > 0 }}"
2128

2229
# DOCA Snapshot lookup vars
23-
doca_rocky_9_minor_dot: "{% if stackhpc_pulp_doca_version is version('3.2.0', '>=') %}9{% else %}9.{{ stackhpc_pulp_repo_rocky_9_minor_version }}{% endif %}"
30+
doca_rocky_9_minor_dot: "{% if stackhpc_pulp_rocky_9_doca_version is version('3.2.0', '>=') %}9{% else %}{{ doca_rocky_9_release }}{% endif %}"
2431
# eg stackhpc_pulp_repo_doca_2_9_3_rhel9_6_version or stackhpc_pulp_repo_doca_3_2_2_rhel9_version
25-
doca_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_doca_version | replace('.', '_') }}_rhel{{ doca_rocky_9_minor_dot | replace('.', '_') }}_version"
26-
doca_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_doca_version | replace('.', '_') }}_rhel{{ doca_rocky_9_minor_dot | replace('.', '_') }}_aarch64_version"
27-
doca_modules_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_doca_version | replace('.', '_') }}_rhel9_{{ stackhpc_pulp_repo_rocky_9_minor_version }}_modules_version"
28-
doca_modules_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_doca_version | replace('.', '_') }}_rhel9_{{ stackhpc_pulp_repo_rocky_9_minor_version }}_modules_aarch64_version"
32+
doca_rocky_9_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_9_doca_version | replace('.', '_') }}_rhel{{ doca_rocky_9_minor_dot | replace('.', '_') }}_version"
33+
doca_rocky_9_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_9_doca_version | replace('.', '_') }}_rhel{{ doca_rocky_9_minor_dot | replace('.', '_') }}_aarch64_version"
34+
doca_rocky_9_modules_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_9_doca_version | replace('.', '_') }}_rhel9_{{ stackhpc_pulp_repo_rocky_9_minor_version }}_modules_version"
35+
doca_rocky_9_modules_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_9_doca_version | replace('.', '_') }}_rhel9_{{ stackhpc_pulp_repo_rocky_9_minor_version }}_modules_aarch64_version"
36+
37+
doca_rocky_10_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_10_doca_version | replace('.', '_') }}_rhel10_x86_64_version"
38+
doca_rocky_10_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_10_doca_version | replace('.', '_') }}_rhel10_aarch64_version"
39+
doca_rocky_10_modules_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_10_doca_version | replace('.', '_') }}_rhel10_{{ stackhpc_pulp_repo_rocky_10_minor_version }}_modules_version"
40+
doca_rocky_10_modules_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_rocky_10_doca_version | replace('.', '_') }}_rhel10_{{ stackhpc_pulp_repo_rocky_10_minor_version }}_modules_aarch64_version"
2941

3042
# DOCA Snapshot versions. The defaults use the appropriate version from
3143
# pulp-repo-versions.yml
32-
stackhpc_pulp_repo_rhel9_doca_version: "{{ lookup('vars', doca_version_lookup_var) }}"
33-
stackhpc_pulp_repo_rhel9_doca_aarch64_version: "{{ lookup('vars', doca_aarch64_version_lookup_var, default=stackhpc_pulp_repo_rhel9_doca_version) }}"
34-
stackhpc_pulp_repo_rhel9_doca_modules_version: "{{ lookup('vars', doca_modules_version_lookup_var) }}"
35-
stackhpc_pulp_repo_rhel9_doca_modules_aarch64_version: "{{ lookup('vars', doca_modules_aarch64_version_lookup_var) }}"
44+
stackhpc_pulp_repo_rhel9_doca_version: "{{ lookup('vars', doca_rocky_9_version_lookup_var) }}"
45+
stackhpc_pulp_repo_rhel9_doca_aarch64_version: "{{ lookup('vars', doca_rocky_9_aarch64_version_lookup_var, default=stackhpc_pulp_repo_rhel9_doca_version) }}"
46+
stackhpc_pulp_repo_rhel9_doca_modules_version: "{{ lookup('vars', doca_rocky_9_modules_version_lookup_var) }}"
47+
stackhpc_pulp_repo_rhel9_doca_modules_aarch64_version: "{{ lookup('vars', doca_rocky_9_modules_aarch64_version_lookup_var) }}"
48+
49+
stackhpc_pulp_repo_rhel10_doca_version: "{{ lookup('vars', doca_rocky_10_version_lookup_var) }}"
50+
stackhpc_pulp_repo_rhel10_doca_aarch64_version: "{{ lookup('vars', doca_rocky_10_aarch64_version_lookup_var, default=stackhpc_pulp_repo_rhel10_doca_version) }}"
51+
stackhpc_pulp_repo_rhel10_doca_modules_version: "{{ lookup('vars', doca_rocky_10_modules_version_lookup_var) }}"
52+
stackhpc_pulp_repo_rhel10_doca_modules_aarch64_version: "{{ lookup('vars', doca_rocky_10_modules_aarch64_version_lookup_var) }}"
3653

3754
###############################################################################
3855
# Dummy variable to allow Ansible to accept this file.

etc/kayobe/pulp-repo-versions.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ stackhpc_pulp_repo_doca_2_9_1_rhel9_5_modules_version: 20250115T150314
2828
stackhpc_pulp_repo_doca_2_9_1_rhel9_5_version: 20241211T171301
2929
stackhpc_pulp_repo_doca_2_9_3_rhel9_6_modules_version: 20250714T141841
3030
stackhpc_pulp_repo_doca_2_9_3_rhel9_6_version: 20250703T135021
31-
stackhpc_pulp_repo_doca_3_2_2_rhel10_aarch64_version: 20260326T091359
32-
stackhpc_pulp_repo_doca_3_2_2_rhel10_x86_64_version: 20260326T091359
33-
stackhpc_pulp_repo_doca_3_2_2_rhel9_7_modules_aarch64_version: 20260611T055845
34-
stackhpc_pulp_repo_doca_3_2_2_rhel9_7_modules_version: 20260611T055845
31+
stackhpc_pulp_repo_doca_3_2_2_rhel10_2_modules_aarch64_version: 20260615T122946
32+
stackhpc_pulp_repo_doca_3_2_2_rhel10_2_modules_version: 20260615T122946
33+
stackhpc_pulp_repo_doca_3_2_2_rhel10_aarch64_version: 20260619T114113
34+
stackhpc_pulp_repo_doca_3_2_2_rhel10_x86_64_version: 20260619T114113
35+
stackhpc_pulp_repo_doca_3_2_2_rhel9_7_modules_aarch64_version: 20260615T122946
36+
stackhpc_pulp_repo_doca_3_2_2_rhel9_7_modules_version: 20260615T122946
3537
stackhpc_pulp_repo_doca_3_2_2_rhel9_aarch64_version: 20260326T091359
3638
stackhpc_pulp_repo_doca_3_2_2_rhel9_version: 20260326T091359
3739
stackhpc_pulp_repo_docker_ce_ubuntu_noble_version: 20260506T205129

0 commit comments

Comments
 (0)