1111 description : Build Ubuntu 22.04 Jammy
1212 type : boolean
1313 default : true
14+ ubuntu-noble :
15+ description : Build Ubuntu 24.04 Noble
16+ type : boolean
17+ default : true
1418 runner_env :
1519 description : Which cloud to run on?
1620 type : choice
5660 steps :
5761 - name : Validate inputs
5862 run : |
59- if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
63+ if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
6064 echo "At least one distribution must be selected"
6165 exit 1
6266 fi
@@ -370,6 +374,75 @@ jobs:
370374 OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
371375 if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
372376
377+ - name : Build an Ubuntu Noble 24.04 overcloud host image
378+ id : build_ubuntu_noble
379+ continue-on-error : true
380+ run : |
381+ source venvs/kayobe/bin/activate &&
382+ source src/kayobe-config/kayobe-env --environment ci-builder &&
383+ kayobe overcloud host image build --force-rebuild \
384+ -e os_distribution="ubuntu" \
385+ -e os_release="noble" \
386+ -e stackhpc_overcloud_dib_name=overcloud-ubuntu-noble
387+ env :
388+ KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
389+ if : inputs.ubuntu-noble
390+
391+ - name : Show last error logs
392+ continue-on-error : true
393+ run : |
394+ source venvs/kayobe/bin/activate &&
395+ source src/kayobe-config/kayobe-env --environment ci-builder &&
396+ kayobe seed host command run --command "tail -200 /opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.stdout" --show-output
397+ env :
398+ KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
399+ if : steps.build_ubuntu_noble.outcome == 'failure'
400+
401+ - name : Upload Ubuntu Noble 24.04 overcloud host image to Ark
402+ run : |
403+ source venvs/kayobe/bin/activate &&
404+ source src/kayobe-config/kayobe-env --environment ci-builder &&
405+ kayobe playbook run \
406+ src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
407+ -e artifact_path=/opt/kayobe/images/overcloud-ubuntu-noble \
408+ -e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \
409+ -e artifact_type="kayobe-images" \
410+ -e file_regex="*.qcow2" \
411+ -e os_distribution="ubuntu" \
412+ -e os_release="noble"
413+ env :
414+ KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
415+ if : inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
416+
417+ - name : Upload Ubuntu Noble overcloud host image to current Dev Cloud (SMS/Leafcloud)
418+ run : |
419+ source venvs/kayobe/bin/activate &&
420+ source src/kayobe-config/kayobe-env --environment ci-builder &&
421+ kayobe playbook run \
422+ src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
423+ -e local_image_path="/opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.qcow2" \
424+ -e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }}
425+ env :
426+ CLOUDS_YAML : ${{ secrets.CLOUDS_YAML }}
427+ OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
428+ OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
429+ if : inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
430+
431+ - name : Upload Ubuntu Noble overcloud host image to other Dev Cloud (Leafcloud/SMS)
432+ run : |
433+ source venvs/kayobe/bin/activate &&
434+ source src/kayobe-config/kayobe-env --environment ci-builder &&
435+ kayobe playbook run \
436+ src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
437+ -e local_image_path="/opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.qcow2" \
438+ -e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }}
439+ env :
440+ CLOUDS_YAML : ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
441+ OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
442+ OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
443+ if : inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
444+
445+
373446 - name : Copy logs back
374447 continue-on-error : true
375448 run : |
@@ -383,7 +456,8 @@ jobs:
383456 echo "Builds failed. See workflow artifacts for details." &&
384457 exit 1
385458 if : steps.build_rocky_9.outcome == 'failure' ||
386- steps.build_ubuntu_jammy.outcome == 'failure'
459+ steps.build_ubuntu_jammy.outcome == 'failure' ||
460+ steps.build_ubuntu_noble.outcome == 'failure'
387461
388462 - name : Upload logs artifact
389463 uses : actions/upload-artifact@v4
0 commit comments