11
11
description : Build Ubuntu 24.04 Noble
12
12
type : boolean
13
13
default : true
14
+ ubuntu-jammy :
15
+ description : Build Ubuntu 22.04 Jammy
16
+ type : boolean
17
+ default : False
14
18
runner_env :
15
19
description : Which cloud to run on?
16
20
type : choice
17
21
default : SMS Lab
18
22
options :
19
23
- SMS Lab
20
24
- Leafcloud
25
+ cpu-platform-architecture :
26
+ description : Select the image's build architecture
27
+ type : choice
28
+ default : x86_64
29
+ options :
30
+ - x86_64
31
+ - aarch64
21
32
secrets :
22
33
KAYOBE_VAULT_PASSWORD :
23
34
required : true
32
43
ANSIBLE_FORCE_COLOR : True
33
44
KAYOBE_ENVIRONMENT : ci-builder
34
45
KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
46
+ overcloud_dib_architecture : ${{ inputs.cpu-platform-architecture == 'x86_64' && 'amd64' || 'arm64' }}
47
+ pulp_artifact_path : ${{ inputs.cpu-platform-architecture == 'x86_64' && 'kayobe-images' || 'kayobe-images/aarch64' }}
35
48
jobs :
36
49
runner-selection :
37
50
uses : ./.github/workflows/runner-selector.yml
@@ -212,7 +225,7 @@ jobs:
212
225
source venvs/kayobe/bin/activate &&
213
226
source src/kayobe-config/kayobe-env --environment ci-builder &&
214
227
kayobe seed host command run \
215
- --command "sudo apt update && sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 python3-venv" --show-output
228
+ --command "sudo apt update && sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 python3-venv qemu-user-static " --show-output
216
229
env :
217
230
KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
218
231
@@ -256,7 +269,7 @@ jobs:
256
269
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
257
270
-e artifact_path=/opt/kayobe/images/overcloud-rocky-9 \
258
271
-e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \
259
- -e artifact_type="kayobe-images" \
272
+ -e artifact_type=${{ env.pulp_artifact_path }} \
260
273
-e file_regex="*.qcow2" \
261
274
-e os_distribution="rocky" \
262
275
-e os_release="9"
@@ -271,7 +284,8 @@ jobs:
271
284
kayobe playbook run \
272
285
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
273
286
-e local_image_path="/opt/kayobe/images/overcloud-rocky-9/overcloud-rocky-9.qcow2" \
274
- -e image_name=overcloud-rocky-9-${{ steps.host_image_tag.outputs.host_image_tag }}
287
+ -e image_name=overcloud-rocky-9-${{ steps.host_image_tag.outputs.host_image_tag }} \
288
+ -e cpu-platform=${{ env.overcloud_dib_architecture }}
275
289
env :
276
290
CLOUDS_YAML : ${{ secrets.CLOUDS_YAML }}
277
291
OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
@@ -285,13 +299,84 @@ jobs:
285
299
kayobe playbook run \
286
300
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
287
301
-e local_image_path="/opt/kayobe/images/overcloud-rocky-9/overcloud-rocky-9.qcow2" \
288
- -e image_name=overcloud-rocky-9-${{ steps.host_image_tag.outputs.host_image_tag }}
302
+ -e image_name=overcloud-rocky-9-${{ steps.host_image_tag.outputs.host_image_tag }} \
303
+ -e cpu-platform=${{ env.overcloud_dib_architecture }}
289
304
env :
290
305
CLOUDS_YAML : ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
291
306
OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
292
307
OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
293
308
if : inputs.rocky9 && steps.build_rocky_9.outcome == 'success'
294
309
310
+ - name : Build an Ubuntu Jammy 22.04 overcloud host image
311
+ id : build_ubuntu_jammy
312
+ continue-on-error : true
313
+ run : |
314
+ source venvs/kayobe/bin/activate &&
315
+ source src/kayobe-config/kayobe-env --environment ci-builder &&
316
+ kayobe overcloud host image build --force-rebuild \
317
+ -e os_distribution="ubuntu" \
318
+ -e os_release="jammy" \
319
+ -e stackhpc_overcloud_dib_name=overcloud-ubuntu-jammy
320
+ env :
321
+ KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
322
+ if : inputs.ubuntu-jammy
323
+
324
+ - name : Show last error logs
325
+ continue-on-error : true
326
+ run : |
327
+ source venvs/kayobe/bin/activate &&
328
+ source src/kayobe-config/kayobe-env --environment ci-builder &&
329
+ kayobe seed host command run --command "tail -200 /opt/kayobe/images/overcloud-ubuntu-jammy/overcloud-ubuntu-jammy.stdout" --show-output
330
+ env :
331
+ KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
332
+ if : steps.build_ubuntu_jammy.outcome == 'failure'
333
+
334
+ - name : Upload Ubuntu Jammy 22.04 overcloud host image to Ark
335
+ run : |
336
+ source venvs/kayobe/bin/activate &&
337
+ source src/kayobe-config/kayobe-env --environment ci-builder &&
338
+ kayobe playbook run \
339
+ src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
340
+ -e artifact_path=/opt/kayobe/images/overcloud-ubuntu-jammy \
341
+ -e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \
342
+ -e artifact_type=${{ env.pulp_artifact_path }} \
343
+ -e file_regex="*.qcow2" \
344
+ -e os_distribution="ubuntu" \
345
+ -e os_release="jammy"
346
+ env :
347
+ KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
348
+ if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
349
+
350
+ - name : Upload Ubuntu Jammy overcloud host image to current Dev Cloud (SMS/Leafcloud)
351
+ run : |
352
+ source venvs/kayobe/bin/activate &&
353
+ source src/kayobe-config/kayobe-env --environment ci-builder &&
354
+ kayobe playbook run \
355
+ src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
356
+ -e local_image_path="/opt/kayobe/images/overcloud-ubuntu-jammy/overcloud-ubuntu-jammy.qcow2" \
357
+ -e image_name=overcloud-ubuntu-jammy-${{ steps.host_image_tag.outputs.host_image_tag }} \
358
+ -e cpu-platform=${{ env.overcloud_dib_architecture }}
359
+ env :
360
+ CLOUDS_YAML : ${{ secrets.CLOUDS_YAML }}
361
+ OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
362
+ OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
363
+ if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
364
+
365
+ - name : Upload Ubuntu Jammy overcloud host image to other Dev Cloud (Leafcloud/SMS)
366
+ run : |
367
+ source venvs/kayobe/bin/activate &&
368
+ source src/kayobe-config/kayobe-env --environment ci-builder &&
369
+ kayobe playbook run \
370
+ src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
371
+ -e local_image_path="/opt/kayobe/images/overcloud-ubuntu-jammy/overcloud-ubuntu-jammy.qcow2" \
372
+ -e image_name=overcloud-ubuntu-jammy-${{ steps.host_image_tag.outputs.host_image_tag }} \
373
+ -e cpu-platform=${{ env.overcloud_dib_architecture }}
374
+ env :
375
+ CLOUDS_YAML : ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
376
+ OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
377
+ OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
378
+ if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
379
+
295
380
- name : Build an Ubuntu Noble 24.04 overcloud host image
296
381
id : build_ubuntu_noble
297
382
continue-on-error : true
@@ -324,7 +409,7 @@ jobs:
324
409
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
325
410
-e artifact_path=/opt/kayobe/images/overcloud-ubuntu-noble \
326
411
-e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \
327
- -e artifact_type="kayobe-images" \
412
+ -e artifact_type=${{ env.pulp_artifact_path }} \
328
413
-e file_regex="*.qcow2" \
329
414
-e os_distribution="ubuntu" \
330
415
-e os_release="noble"
@@ -339,7 +424,8 @@ jobs:
339
424
kayobe playbook run \
340
425
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
341
426
-e local_image_path="/opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.qcow2" \
342
- -e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }}
427
+ -e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }} \
428
+ -e cpu-platform=${{ env.overcloud_dib_architecture }}
343
429
env :
344
430
CLOUDS_YAML : ${{ secrets.CLOUDS_YAML }}
345
431
OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
@@ -353,7 +439,8 @@ jobs:
353
439
kayobe playbook run \
354
440
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
355
441
-e local_image_path="/opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.qcow2" \
356
- -e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }}
442
+ -e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }} \
443
+ -e cpu-platform=${{ env.overcloud_dib_architecture }}
357
444
env :
358
445
CLOUDS_YAML : ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
359
446
OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
0 commit comments