Skip to content

Commit 1e9eacf

Browse files
bbezakJasleenKaurSethi
authored andcommitted
add aarch64 container image builds for R9 (#1322)
Change-Id: Ifcd61399a07d5cfe9fa319236ecb911bf735f33c
1 parent 5707bb2 commit 1e9eacf

File tree

4 files changed

+43
-4
lines changed

4 files changed

+43
-4
lines changed

.github/workflows/stackhpc-container-image-build.yml

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ jobs:
9696
# https://stackoverflow.com/questions/65384420/how-do-i-make-a-github-action-matrix-element-conditional
9797
# NOTE(bbezak): Both amd64 and aarch64 need to be built in a single workflow to create a multi-architecture manifest.
9898
# For now include only RL9 in aarch64
99+
# NOTE(bbezak): Both amd64 and aarch64 need to be built in a single workflow to create a multi-architecture manifest.
100+
# For now include only RL9 in aarch64
99101
- name: Generate build matrix
100102
id: set-matrix
101103
run: |
@@ -104,8 +106,12 @@ jobs:
104106
output+="{'name': 'rocky', 'release': 9, 'arch': 'amd64'},"
105107
output+="{'name': 'rocky', 'release': 9, 'arch': 'aarch64'},"
106108
fi
109+
if [[ ${{ inputs.ubuntu-jammy }} == 'true' ]]; then
110+
output+="{'name': 'ubuntu', 'release': 'jammy', 'arch': 'amd64'},"
111+
fi
107112
if [[ ${{ inputs.ubuntu-noble }} == 'true' ]]; then
108113
output+="{'name': 'ubuntu', 'release': 'noble', 'arch': 'amd64'},"
114+
output+="{'name': 'ubuntu', 'release': 'noble', 'arch': 'amd64'},"
109115
fi
110116
# remove trailing comma
111117
output="${output%,}"
@@ -124,6 +130,9 @@ jobs:
124130
container-image-build:
125131
name: Build Kolla container images
126132
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
133+
runs-on: ${{ matrix.distro.arch == 'aarch64'
134+
&& fromJson('["self-hosted","sms","arm64"]')
135+
|| needs.runner-selection.outputs.runner_name_container_image_build }}
127136
runs-on: ${{ matrix.distro.arch == 'aarch64'
128137
&& fromJson('["self-hosted","sms","arm64"]')
129138
|| needs.runner-selection.outputs.runner_name_container_image_build }}
@@ -139,6 +148,9 @@ jobs:
139148
- name: Purge workspace
140149
run: sudo rm -rf "$GITHUB_WORKSPACE"/*
141150

151+
- name: Purge workspace
152+
run: sudo rm -rf "$GITHUB_WORKSPACE"/*
153+
142154
- name: Install package dependencies
143155
run: |
144156
sudo apt update
@@ -161,6 +173,8 @@ jobs:
161173
run: |
162174
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
163175
curl -sL "https://github.com/mikefarah/yq/releases/download/v4.42.1/yq_linux_${ARCH}.tar.gz" | tar xz && sudo mv yq_linux_${ARCH} /usr/bin/yq
176+
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
177+
curl -sL "https://github.com/mikefarah/yq/releases/download/v4.42.1/yq_linux_${ARCH}.tar.gz" | tar xz && sudo mv yq_linux_${ARCH} /usr/bin/yq
164178
165179
- name: Install Kayobe
166180
run: |
@@ -201,26 +215,33 @@ jobs:
201215
if [[ "${{ matrix.distro.arch }}" == 'aarch64' ]]; then
202216
args="$args -e kolla_base_arch=${{ matrix.distro.arch }}"
203217
fi
218+
if [[ "${{ matrix.distro.arch }}" == 'aarch64' ]]; then
219+
args="$args -e kolla_base_arch=${{ matrix.distro.arch }}"
220+
fi
204221
args="$args -e kolla_base_distro=${{ matrix.distro.name }}"
205222
args="$args -e kolla_base_distro_version=${{ matrix.distro.release }}"
206223
if [[ "${{ matrix.distro.name }}" == 'rocky' ]]; then
207224
args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}-${{ matrix.distro.arch }}"
208225
else
209226
args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
210227
fi
228+
if [[ "${{ matrix.distro.name }}" == 'rocky' ]]; then
229+
args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}-${{ matrix.distro.arch }}"
230+
else
231+
args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
232+
fi
211233
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
212234
args="$args -e kolla_build_log_path=$GITHUB_WORKSPACE/image-build-logs/kolla-build-overcloud.log"
213235
args="$args -e base_path=$GITHUB_WORKSPACE/opt/kayobe"
214-
# NOTE: We override pulp_auth_proxy_conf_path to a path shared by the
215-
# runner and dind containers.
216-
args="$args -e pulp_auth_proxy_conf_path=/home/runner/_work/pulp_proxy"
217236
source venvs/kayobe/bin/activate &&
218237
source src/kayobe-config/kayobe-env --environment ci-builder &&
219238
kayobe overcloud container image build $args
220239
env:
221240
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
222241
if: inputs.overcloud
223242

243+
- name: Copy build configs to output directory
244+
run: sudo cp -rnL "$GITHUB_WORKSPACE/opt/kayobe/etc/kolla/"* image-build-logs/
224245
- name: Copy build configs to output directory
225246
run: sudo cp -rnL "$GITHUB_WORKSPACE/opt/kayobe/etc/kolla/"* image-build-logs/
226247
if: inputs.overcloud
@@ -239,13 +260,16 @@ jobs:
239260
env:
240261
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
241262
if: inputs.seed && matrix.distro.arch == 'amd64'
263+
if: inputs.seed && matrix.distro.arch == 'amd64'
242264

243265
- name: Copy seed container image build logs to output directory
244266
run: sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-seed.log
245267
if: inputs.seed && matrix.distro.arch == 'amd64'
268+
if: inputs.seed && matrix.distro.arch == 'amd64'
246269

247270
- name: Get built container images
248271
run: docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}*" > ${{ matrix.distro.name }}-${{ matrix.distro.release }}-container-images
272+
run: docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}*" > ${{ matrix.distro.name }}-${{ matrix.distro.release }}-container-images
249273

250274
- name: Fail if no images have been built
251275
run: if [ $(wc -l < ${{ matrix.distro.name }}-${{ matrix.distro.release }}-container-images) -le 1 ]; then exit 1; fi
@@ -306,6 +330,7 @@ jobs:
306330
- name: Upload output artifact
307331
uses: actions/upload-artifact@v4
308332
with:
333+
name: ${{ matrix.distro.name }}-${{ matrix.distro.release }}-${{ matrix.distro.arch }}-logs
309334
name: ${{ matrix.distro.name }}-${{ matrix.distro.release }}-${{ matrix.distro.arch }}-logs
310335
path: image-build-logs
311336
retention-days: 7

etc/kayobe/environments/ci-aio/stackhpc-ci.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ stackhpc_repo_rocky_9_crb_version: "{{ stackhpc_pulp_repo_rocky_9_crb_version }}
5252
stackhpc_repo_rocky_9_highavailability_version: "{{ stackhpc_pulp_repo_rocky_9_highavailability_version }}"
5353
stackhpc_repo_rocky_9_sig_security_common_version: "{{ stackhpc_pulp_repo_multiarch_rocky_9_sig_security_common_version }}"
5454
stackhpc_repo_rhel9_doca_version: "{{ stackhpc_pulp_repo_rhel9_doca_version }}"
55-
stackhpc_repo_rhel9_doca_modules_version: "{{ stackhpc_pulp_repo_rhel9_doca_modules_version }}"
5655

5756
# Rocky-and-CI-specific Pulp urls
5857
stackhpc_include_os_minor_version_in_repo_url: true

etc/kayobe/environments/ci-multinode/stackhpc-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ stackhpc_repo_rocky_9_extras_version: "{{ stackhpc_pulp_repo_rocky_9_extras_vers
5151
stackhpc_repo_rocky_9_crb_version: "{{ stackhpc_pulp_repo_rocky_9_crb_version }}"
5252
stackhpc_repo_rocky_9_highavailability_version: "{{ stackhpc_pulp_repo_rocky_9_highavailability_version }}"
5353
stackhpc_repo_rocky_9_sig_security_common_version: "{{ stackhpc_pulp_repo_multiarch_rocky_9_sig_security_common_version }}"
54+
stackhpc_repo_rocky_9_sig_security_common_version: "{{ stackhpc_pulp_repo_multiarch_rocky_9_sig_security_common_version }}"
5455

5556
# Rocky-and-CI-specific Pulp urls
5657
stackhpc_include_os_minor_version_in_repo_url: true

etc/kayobe/stackhpc.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ stackhpc_repo_grafana_version: "{{ stackhpc_repo_distribution }}"
6262

6363
# RabbitMQ - Erlang for RHEL 9
6464
stackhpc_repo_rhel9_rabbitmq_erlang_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rabbitmq/erlang/el/9/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel9_rabbitmq_erlang_version }}"
65+
stackhpc_repo_rhel9_rabbitmq_erlang_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rabbitmq/erlang/el/9/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel9_rabbitmq_erlang_version }}"
6566
stackhpc_repo_rhel9_rabbitmq_erlang_version: "{{ stackhpc_repo_distribution }}"
6667
# RabbitMQ - Erlang 26 for RHEL 9 (aarch64)
6768
stackhpc_repo_rhel9_rabbitmq_erlang_26_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rabbitmq/erlang-26/el/9/aarch64/{{ stackhpc_repo_rhel9_rabbitmq_erlang_26_version }}"
@@ -77,6 +78,7 @@ stackhpc_repo_rhel9_rabbitmq_server_version: "{{ stackhpc_repo_distribution }}"
7778

7879
# CentOS Stream 9 - NFV OpenvSwitch
7980
stackhpc_repo_centos_stream_9_nfv_openvswitch_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/centos/9-stream/nfv/{{ kolla_base_arch }}/openvswitch-2/{{ stackhpc_repo_centos_stream_9_nfv_openvswitch_version }}"
81+
stackhpc_repo_centos_stream_9_nfv_openvswitch_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/centos/9-stream/nfv/{{ kolla_base_arch }}/openvswitch-2/{{ stackhpc_repo_centos_stream_9_nfv_openvswitch_version }}"
8082
stackhpc_repo_centos_stream_9_nfv_openvswitch_version: "{{ stackhpc_repo_distribution }}"
8183

8284
# CentOS Stream 9 - OpenStack Epoxy
@@ -93,18 +95,22 @@ stackhpc_repo_centos_stream_9_storage_ceph_squid_version: "{{ stackhpc_repo_dist
9395

9496
# CentOS Stream 9 Docker CE
9597
stackhpc_repo_centos_stream_9_docker_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/docker-ce/centos/9/{{ kolla_base_arch }}/stable/{{ stackhpc_repo_centos_stream_9_docker_version }}"
98+
stackhpc_repo_centos_stream_9_docker_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/docker-ce/centos/9/{{ kolla_base_arch }}/stable/{{ stackhpc_repo_centos_stream_9_docker_version }}"
9699
stackhpc_repo_centos_stream_9_docker_version: "{{ stackhpc_repo_distribution }}"
97100

98101
# TreasureData 5 for RHEL 9
99102
stackhpc_repo_rhel_9_treasuredata_5_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/treasuredata/5/redhat/9/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel_9_treasuredata_5_version }}"
103+
stackhpc_repo_rhel_9_treasuredata_5_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/treasuredata/5/redhat/9/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel_9_treasuredata_5_version }}"
100104
stackhpc_repo_rhel_9_treasuredata_5_version: "{{ stackhpc_repo_distribution }}"
101105

102106
# MariaDB 10.11 for RHEL 9
103107
stackhpc_repo_rhel_9_mariadb_10_11_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/mariadb-10.11/yum/rhel/9/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel_9_mariadb_10_11_version }}"
108+
stackhpc_repo_rhel_9_mariadb_10_11_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/mariadb-10.11/yum/rhel/9/{{ kolla_base_arch }}/{{ stackhpc_repo_rhel_9_mariadb_10_11_version }}"
104109
stackhpc_repo_rhel_9_mariadb_10_11_version: "{{ stackhpc_repo_distribution }}"
105110

106111
# InfluxDB for RHEL 9
107112
stackhpc_repo_rhel_9_influxdb_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/influxdb/rhel/9/{{ kolla_base_arch }}/stable/{{ stackhpc_repo_rhel_9_influxdb_version }}"
113+
stackhpc_repo_rhel_9_influxdb_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/influxdb/rhel/9/{{ kolla_base_arch }}/stable/{{ stackhpc_repo_rhel_9_influxdb_version }}"
108114
stackhpc_repo_rhel_9_influxdb_version: "{{ stackhpc_repo_distribution }}"
109115

110116
# OpenSearch for RHEL 9
@@ -121,34 +127,42 @@ stackhpc_repo_almalinux_9_proxysql_2_7_version: "{{ stackhpc_repo_distribution }
121127

122128
# Rocky 9 AppStream
123129
stackhpc_repo_rocky_9_appstream_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/AppStream/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_appstream_version }}"
130+
stackhpc_repo_rocky_9_appstream_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/AppStream/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_appstream_version }}"
124131
stackhpc_repo_rocky_9_appstream_version: "{{ stackhpc_repo_distribution }}"
125132

126133
# Rocky 9 BaseOS
127134
stackhpc_repo_rocky_9_baseos_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/BaseOS/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_baseos_version }}"
135+
stackhpc_repo_rocky_9_baseos_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/BaseOS/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_baseos_version }}"
128136
stackhpc_repo_rocky_9_baseos_version: "{{ stackhpc_repo_distribution }}"
129137

130138
# Rocky 9 CRB
131139
stackhpc_repo_rocky_9_crb_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/CRB/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_crb_version }}"
140+
stackhpc_repo_rocky_9_crb_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/CRB/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_crb_version }}"
132141
stackhpc_repo_rocky_9_crb_version: "{{ stackhpc_repo_distribution }}"
133142

134143
# Rocky 9 extras
135144
stackhpc_repo_rocky_9_extras_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/extras/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_extras_version }}"
145+
stackhpc_repo_rocky_9_extras_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/extras/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_extras_version }}"
136146
stackhpc_repo_rocky_9_extras_version: "{{ stackhpc_repo_distribution }}"
137147

138148
# Rocky 9 highavailability
139149
stackhpc_repo_rocky_9_highavailability_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/highavailability/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_highavailability_version }}"
150+
stackhpc_repo_rocky_9_highavailability_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/{{ stackhpc_rocky_9_url_version }}/highavailability/{{ kolla_base_arch }}/os/{{ stackhpc_repo_rocky_9_highavailability_version }}"
140151
stackhpc_repo_rocky_9_highavailability_version: "{{ stackhpc_repo_distribution }}"
141152

142153
# Rocky 9 SIG Security Common
143154
stackhpc_repo_rocky_9_sig_security_common_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/sig/9/security/{{ kolla_base_arch }}/security-common/{{ stackhpc_repo_rocky_9_sig_security_common_version }}"
155+
stackhpc_repo_rocky_9_sig_security_common_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/rocky/sig/9/security/{{ kolla_base_arch }}/security-common/{{ stackhpc_repo_rocky_9_sig_security_common_version }}"
144156
stackhpc_repo_rocky_9_sig_security_common_version: "{{ stackhpc_repo_distribution }}"
145157

146158
# EPEL 9
147159
stackhpc_repo_epel_9_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/epel/9/Everything/{{ kolla_base_arch }}/{{ stackhpc_repo_epel_9_version }}"
160+
stackhpc_repo_epel_9_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/epel/9/Everything/{{ kolla_base_arch }}/{{ stackhpc_repo_epel_9_version }}"
148161
stackhpc_repo_epel_9_version: "{{ stackhpc_repo_distribution }}"
149162

150163
# ELRepo 9
151164
stackhpc_repo_elrepo_9_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/elrepo/elrepo/el9/{{ kolla_base_arch }}/{{ stackhpc_repo_elrepo_9_version }}"
165+
stackhpc_repo_elrepo_9_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/elrepo/elrepo/el9/{{ kolla_base_arch }}/{{ stackhpc_repo_elrepo_9_version }}"
152166
stackhpc_repo_elrepo_9_version: "{{ stackhpc_repo_distribution }}"
153167

154168
###############################################################################

0 commit comments

Comments
 (0)