Skip to content

Commit 9c9c6ce

Browse files
committed
Build DOCA-OFED kernel modules for Rocky 10
1 parent 268abb1 commit 9c9c6ce

10 files changed

Lines changed: 146 additions & 308 deletions

File tree

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

Lines changed: 70 additions & 254 deletions
Large diffs are not rendered by default.

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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
vars:
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
9+
doca_release: "{{ os_release }}.{{ lookup('vars', 'stackhpc_pulp_repo_rocky_' ~ os_release ~ '_minor_version') }}"
910
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 }}"
11+
doca_kernel_version: "{{ stackhpc_doca_kernel_version_matrix[doca_release | string] }}.{{ doca_kernel_arch }}"
1112
tasks:
1213
- name: Install kernel repo
1314
ansible.builtin.dnf:

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

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,31 @@
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:
2020
doca_modules_repo_name: "{{ doca_modules_repos.0.name }}"
2121
doca_modules_repo_base_path: "{{ doca_modules_repos.0.base_path }}"
2222
doca_modules_repo_distribution_name: "{{ doca_modules_repos.0.distribution_name }}"
2323

24-
- name: Install python dependencies
24+
- name: Install pip packages
2525
ansible.builtin.pip:
26-
name: pulp-cli
27-
28-
- name: Ensure Pulp configuration directory exists
29-
ansible.builtin.file:
30-
path: /home/stack/.config/pulp/
31-
state: directory
32-
recurse: true
33-
34-
- name: Setup Pulp credentials
35-
ansible.builtin.blockinfile:
36-
path: /home/stack/.config/pulp/cli.toml
37-
create: true
38-
block: |
39-
[cli]
40-
base_url = '{{ stackhpc_release_pulp_url }}'
41-
verify_ssl = true
42-
format = "json"
43-
username = '{{ stackhpc_release_pulp_username }}'
44-
password = '{{ stackhpc_release_pulp_password }}'
45-
no_log: true
26+
name:
27+
- pyopenssl
28+
- ndg-httpsclient
29+
- pyasn1
30+
- urllib3
31+
- packaging
32+
- pulp-glue<0.34.0,>=0.33.0
33+
- pulp-glue-deb<0.4.0,>=0.3.0
34+
state: present
4635

4736
- name: Find DOCA kernel repo package
4837
ansible.builtin.shell:
@@ -60,15 +49,20 @@
6049
retries: "{{ pulp_timeout_retries | default(3) }}"
6150

6251
- name: Upload OFED RPMs to Pulp
63-
ansible.builtin.shell:
64-
cmd: |
65-
{{ venv }}/bin/pulp \
66-
rpm content \
67-
--type package upload \
68-
--repository '{{ doca_modules_repo_name }}' \
69-
--file {{ item }} \
70-
--no-publish \
52+
pulp.squeezer.rpm_package:
53+
pulp_url: "{{ stackhpc_release_pulp_url }}"
54+
username: "{{ stackhpc_release_pulp_username }}"
55+
password: "{{ stackhpc_release_pulp_password }}"
56+
file: "{{ item }}"
57+
chunk_size: 4194304
58+
repository: "{{ doca_modules_repo_name }}"
59+
state: present
7160
with_items: "{{ doca_kernel_repo.stdout_lines }}"
61+
register: package
62+
63+
- name: Display information about the uploaded rpm
64+
debug:
65+
var: package
7266

7367
- name: Create Pulp publication for OFED
7468
pulp.squeezer.rpm_publication:

etc/kayobe/dnf.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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 3.2.2 - 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 3.2.2 - 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/ci-aio/stackhpc-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ stackhpc_repo_rhel_10_mariadb_10_11_version: "{{ stackhpc_pulp_repo_multiarch_rh
4545
stackhpc_repo_rhel_9_influxdb_version: "{{ stackhpc_pulp_repo_multiarch_rhel_9_influxdb_version }}"
4646
stackhpc_repo_rhel_9_mariadb_10_11_version: "{{ stackhpc_pulp_repo_multiarch_rhel_9_mariadb_10_11_version }}"
4747
stackhpc_repo_rhel_9_treasuredata_5_version: "{{ stackhpc_pulp_repo_multiarch_rhel_9_treasuredata_5_version }}"
48+
stackhpc_repo_rhel10_doca_modules_version: "{{ stackhpc_pulp_repo_rhel10_doca_modules_version }}"
4849
stackhpc_repo_rhel10_doca_version: "{{ stackhpc_pulp_repo_rhel10_doca_version }}"
4950
stackhpc_repo_rhel9_doca_modules_version: "{{ stackhpc_pulp_repo_rhel9_doca_modules_version }}"
5051
stackhpc_repo_rhel9_doca_version: "{{ stackhpc_pulp_repo_rhel9_doca_version }}"

etc/kayobe/ofed.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
stackhpc_pulp_doca_version_matrix:
77
"6": 2.9.3
88
"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') }}"
9+
stackhpc_pulp_doca_version: "{{ stackhpc_pulp_doca_version_matrix[stackhpc_pulp_repo_rocky_9_minor_version | string] | default('2.9.3') }}"
1010

1111
# Available and tested versions of the pre-compiled doca-ofed kernel modules
1212
stackhpc_doca_kernel_version_matrix:
13-
"6": 5.14.0.570.21.1.el9.6
14-
"7": 5.14.0.611.41.1.el9.7
13+
"9.6": 5.14.0.570.21.1.el9.6
14+
"9.7": 5.14.0.611.41.1.el9.7
15+
"10.1": 6.12.0-124.45.1.el10_1
1516

1617
###############################################################################
1718
# Pulp configuration for DOCA OFED
@@ -22,15 +23,23 @@ stackhpc_pulp_sync_ofed: "{{ groups['mlnx'] | length > 0 }}"
2223
# DOCA Snapshot lookup vars
2324
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 %}"
2425
# 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_modules_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_doca_version | replace('.', '_') }}_rhel9_{{ stackhpc_pulp_repo_rocky_9_minor_version }}_modules_version"
27-
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"
26+
doca_rocky_9_version_lookup_var: "stackhpc_pulp_repo_doca_{{ stackhpc_pulp_doca_version | replace('.', '_') }}_rhel{{ doca_rocky_9_minor_dot | replace('.', '_') }}_version"
27+
doca_rocky_9_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_rocky_9_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"
29+
30+
doca_rocky_10_version_lookup_var: "stackhpc_pulp_repo_doca_3_2_2_rhel10_{{ kolla_base_arch }}_version"
31+
doca_rocky_10_modules_version_lookup_var: "stackhpc_pulp_repo_doca_3_2_2_rhel10_modules_version"
32+
doca_rocky_10_modules_aarch64_version_lookup_var: "stackhpc_pulp_repo_doca_3_2_2_rhel10_modules_aarch64_version"
2833

2934
# DOCA Snapshot versions. The defaults use the appropriate version from
3035
# pulp-repo-versions.yml
31-
stackhpc_pulp_repo_rhel9_doca_version: "{{ lookup('vars', doca_version_lookup_var) }}"
32-
stackhpc_pulp_repo_rhel9_doca_modules_version: "{{ lookup('vars', doca_modules_version_lookup_var) }}"
33-
stackhpc_pulp_repo_rhel9_doca_modules_aarch64_version: "{{ lookup('vars', doca_modules_aarch64_version_lookup_var) }}"
36+
stackhpc_pulp_repo_rhel9_doca_version: "{{ lookup('vars', doca_rocky_9_version_lookup_var) }}"
37+
stackhpc_pulp_repo_rhel9_doca_modules_version: "{{ lookup('vars', doca_rocky_9_modules_version_lookup_var) }}"
38+
stackhpc_pulp_repo_rhel9_doca_modules_aarch64_version: "{{ lookup('vars', doca_rocky_9_modules_aarch64_version_lookup_var) }}"
39+
40+
stackhpc_pulp_repo_rhel10_doca_version: "{{ lookup('vars', doca_rocky_10_version_lookup_var) }}"
41+
stackhpc_pulp_repo_rhel10_doca_modules_version: "{{ lookup('vars', doca_rocky_10_modules_version_lookup_var) }}"
42+
stackhpc_pulp_repo_rhel10_doca_modules_aarch64_version: "{{ lookup('vars', doca_rocky_10_modules_aarch64_version_lookup_var) }}"
3443

3544
###############################################################################
3645
# Dummy variable to allow Ansible to accept this file.

etc/kayobe/pulp-repo-versions.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ 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_modules_aarch64_version:
32+
stackhpc_pulp_repo_doca_3_2_2_rhel10_modules_version:
3133
stackhpc_pulp_repo_doca_3_2_2_rhel10_aarch64_version: 20260326T091359
3234
stackhpc_pulp_repo_doca_3_2_2_rhel10_x86_64_version: 20260326T091359
3335
stackhpc_pulp_repo_doca_3_2_2_rhel9_7_modules_aarch64_version: 20260424T151043

etc/kayobe/pulp.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ stackhpc_pulp_rpm_repos:
527527

528528
- name: DOCA Online Repo 3.2.2 - RHEL 10
529529
url: "{{ stackhpc_release_pulp_content_url }}/doca/3.2.2/rhel10/x86_64/{{ stackhpc_pulp_repo_doca_3_2_2_rhel10_x86_64_version }}"
530-
distribution_name: "doca-3.2.2-rhel10-"
530+
distribution_name: "doca-3.2.2-rhel10-x86_64-"
531531
base_path: "doca/3.2.2/rhel10/x86_64/"
532532
required: "{{ stackhpc_pulp_sync_ofed | bool and stackhpc_pulp_sync_el_10 | bool }}"
533533

@@ -537,6 +537,18 @@ stackhpc_pulp_rpm_repos:
537537
base_path: "doca/3.2.2/rhel10/aarch64/"
538538
required: "{{ stackhpc_pulp_sync_ofed | bool and stackhpc_pulp_sync_el_10 | bool }}"
539539

540+
- name: OFED Kernel modules for DOCA 3.2.2 - RHEL 10
541+
url: "{{ stackhpc_release_pulp_content_url }}/doca-modules/3.2.2/rhel10/x86_64/{{ stackhpc_pulp_repo_rhel10_doca_modules_version }}"
542+
distribution_name: "doca-modules-3.2.2-rhel10-"
543+
base_path: "doca-modules/3.2.2/rhel10/x86_64/"
544+
required: "{{ stackhpc_pulp_sync_ofed | bool and stackhpc_pulp_sync_el_10 | bool }}"
545+
546+
- name: OFED Kernel modules for DOCA 3.2.2 - RHEL 10 aarch64
547+
url: "{{ stackhpc_release_pulp_content_url }}/doca-modules/3.2.2/rhel10/aarch64/{{ stackhpc_pulp_repo_rhel10_doca_modules_aarch64_version }}"
548+
distribution_name: "doca-modules-3.2.2-rhel10-aarch64-"
549+
base_path: "doca-modules/3.2.2/rhel10/aarch64/"
550+
required: "{{ stackhpc_pulp_sync_ofed | bool and stackhpc_pulp_sync_el_10 | bool }}"
551+
540552
# RPM repositories
541553
stackhpc_pulp_repository_rpm_repos: >-
542554
{%- set rpm_repos = [] -%}

etc/kayobe/stackhpc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ stackhpc_repo_rhel_10_mariadb_10_11_version: "{{ stackhpc_repo_distribution }}"
209209
stackhpc_repo_rhel10_doca_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/doca/3.2.2/rhel10/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel10_doca_version }}"
210210
stackhpc_repo_rhel10_doca_version: "{{ stackhpc_repo_distribution }}"
211211

212+
# DOCA Modules for RHEL 10
213+
stackhpc_repo_rhel10_doca_modules_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/doca-modules/3.2.2/rhel10/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel10_doca_modules_version }}"
214+
stackhpc_repo_rhel10_doca_modules_version: "{{ stackhpc_repo_distribution }}"
215+
212216
###############################################################################
213217
# Sources
214218

0 commit comments

Comments
 (0)