71
71
# Dynamically define job matrix.
72
72
# We need a separate matrix entry for each distribution, when the relevant input is true.
73
73
# https://stackoverflow.com/questions/65384420/how-do-i-make-a-github-action-matrix-element-conditional
74
+ # NOTE(bbezak): Both amd64 and aarch64 need to be built in a single workflow to create a multi-architecture manifest.
74
75
# For now include only RL9 in aarch64
75
76
- name : Generate build matrix
76
77
id : set-matrix
@@ -150,12 +151,7 @@ jobs:
150
151
151
152
- name : Get Kolla tag
152
153
id : write-kolla-tag
153
- run : |
154
- kolla_tag="${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ needs.generate-tag.outputs.datetime_tag }}"
155
- if [[ "${{ matrix.distro }}" == 'rocky' ]]; then
156
- kolla_tag="$kolla_tag-${{ matrix.arch }}"
157
- fi
158
- echo "kolla-tag=$kolla_tag" >> $GITHUB_OUTPUT
154
+ run : echo "kolla-tag=${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ matrix.distro == 'rocky' && '9' || 'jammy' }}-${{ needs.generate-tag.outputs.datetime_tag }}" >> $GITHUB_OUTPUT
159
155
160
156
- name : Configure localhost as a seed
161
157
run : |
@@ -189,7 +185,11 @@ jobs:
189
185
args="$args -e kolla_base_arch=${{ matrix.arch }}"
190
186
fi
191
187
args="$args -e kolla_base_distro=${{ matrix.distro }}"
192
- args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
188
+ if [[ "${{ matrix.distro }}" = 'rocky' ]]; then
189
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}-${{ matrix.arch }}"
190
+ else
191
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
192
+ fi
193
193
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
194
194
source venvs/kayobe/bin/activate &&
195
195
source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -206,19 +206,12 @@ jobs:
206
206
run : sudo cp -rnL /opt/kayobe/etc/kolla/* image-build-logs/
207
207
if : inputs.overcloud
208
208
209
- - name : Get Kolla tag for seed images
210
- id : write-kolla-tag-seed
211
- run : |
212
- kolla_tag_seed="${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ needs.generate-tag.outputs.datetime_tag }}"
213
- echo "kolla-tag-seed=$kolla_tag_seed" >> $GITHUB_OUTPUT
214
- if : inputs.seed
215
-
216
209
- name : Build kolla seed images
217
210
id : build_seed_images
218
211
continue-on-error : true
219
212
run : |
220
213
args="-e kolla_base_distro=${{ matrix.distro }}"
221
- args="$args -e kolla_tag=${{ steps.write-kolla-tag-seed .outputs.kolla-tag-seed }}"
214
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
222
215
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
223
216
source venvs/kayobe/bin/activate &&
224
217
source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -319,7 +312,7 @@ jobs:
319
312
320
313
create-manifests :
321
314
# Only for Rocky Linux for now
322
- name : Create Docker Manifests
315
+ name : Create Multiarch Docker Manifests
323
316
if : github.repository == 'stackhpc/stackhpc-kayobe-config' && inputs.push
324
317
runs-on : arc-skc-container-image-builder-runner
325
318
permissions : {}
@@ -399,8 +392,12 @@ jobs:
399
392
set -ex
400
393
mkdir -p logs
401
394
images=$(cat all-pushed-images.txt | sort | uniq)
402
- # Filter out Ubuntu images
403
- manifest_images=$(echo "$images" | grep 'rocky' | sed -E 's/-(amd64|aarch64)$//' | sort | uniq)
395
+ # Filter out Ubuntu and Rocky Bifrost images
396
+ manifest_images=$(echo "$images" | grep -E '.*-(amd64|aarch64)$' | sed -E 's/-(amd64|aarch64)$//' | sort | uniq)
397
+ if [ -z "$manifest_images" ]; then
398
+ echo "No Rocky overcloud images found. Skipping manifest creation." | tee -a logs/manifest-creation.log
399
+ exit 0
400
+ fi
404
401
for base_image in $manifest_images; do
405
402
arch_images=""
406
403
for arch in amd64 aarch64; do
0 commit comments