1111 description : Build Ubuntu 22.04 Jammy
1212 type : boolean
1313 default : true
14+ runner_env :
15+ description : Which cloud to run on?
16+ type : choice
17+ default : SMS Lab
18+ options :
19+ - SMS Lab
20+ - Leafcloud
1421 secrets :
1522 KAYOBE_VAULT_PASSWORD :
1623 required : true
2633 KAYOBE_ENVIRONMENT : ci-builder
2734 KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
2835jobs :
36+ runner-selection :
37+ uses : ./.github/workflows/runner-selector.yml
38+ with :
39+ runner_env : ${{ inputs.runner_env }}
2940 overcloud-host-image-build :
3041 name : Build overcloud host images
3142 if : github.repository == 'stackhpc/stackhpc-kayobe-config'
32- runs-on : arc-skc-host-image-builder-runner
43+ environment : ${{ inputs.runner_env }}
44+ runs-on : ${{ needs.runner-selection.outputs.runner_name_image_build }}
45+ needs :
46+ - runner-selection
3347 permissions : {}
3448 steps :
3549 - name : Validate inputs
@@ -109,10 +123,10 @@ jobs:
109123 aio_vm_name = "skc-host-image-builder"
110124 # Must be an Ubuntu Jammy host to successfully build all images
111125 # This MUST NOT be an LVM image. It can cause confusing conficts with the built image.
112- aio_vm_image = "Ubuntu-22.04 "
113- aio_vm_flavor = "en1.medium "
114- aio_vm_network = "stackhpc-ci "
115- aio_vm_subnet = "stackhpc-ci "
126+ aio_vm_image = "${{ vars.HOST_IMAGE_BUILD_IMAGE }} "
127+ aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }} "
128+ aio_vm_network = "${{ vars.HOST_IMAGE_BUILD_NETWORK }} "
129+ aio_vm_subnet = "${{ vars.HOST_IMAGE_BUILD_SUBNET }} "
116130 aio_vm_interface = "ens3"
117131 EOF
118132 working-directory : ${{ github.workspace }}/src/kayobe-config/terraform/aio
@@ -121,7 +135,7 @@ jobs:
121135 run : terraform plan
122136 working-directory : ${{ github.workspace }}/src/kayobe-config/terraform/aio
123137 env :
124- OS_CLOUD : " openstack "
138+ OS_CLOUD : ${{ vars.OS_CLOUD }}
125139 OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
126140 OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
127141
@@ -141,7 +155,7 @@ jobs:
141155 exit 1
142156 working-directory : ${{ github.workspace }}/src/kayobe-config/terraform/aio
143157 env :
144- OS_CLOUD : " openstack "
158+ OS_CLOUD : ${{ vars.OS_CLOUD }}
145159 OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
146160 OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
147161
@@ -250,7 +264,7 @@ jobs:
250264 KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
251265 if : inputs.rocky9 && steps.build_rocky_9.outcome == 'success'
252266
253- - name : Upload Rocky Linux 9 overcloud host image to Dev Cloud
267+ - name : Upload Rocky Linux 9 overcloud host image to current Dev Cloud (SMS/Leafcloud)
254268 run : |
255269 source venvs/kayobe/bin/activate &&
256270 source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -264,6 +278,20 @@ jobs:
264278 OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
265279 if : inputs.rocky9 && steps.build_rocky_9.outcome == 'success'
266280
281+ - name : Upload Rocky Linux 9 overcloud host image to other Dev Cloud (Leafcloud/SMS)
282+ run : |
283+ source venvs/kayobe/bin/activate &&
284+ source src/kayobe-config/kayobe-env --environment ci-builder &&
285+ kayobe playbook run \
286+ src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
287+ -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 }}
289+ env :
290+ CLOUDS_YAML : ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
291+ OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
292+ OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
293+ if : inputs.rocky9 && steps.build_rocky_9.outcome == 'success'
294+
267295 - name : Build an Ubuntu Jammy 22.04 overcloud host image
268296 id : build_ubuntu_jammy
269297 continue-on-error : true
@@ -304,7 +332,7 @@ jobs:
304332 KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
305333 if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
306334
307- - name : Upload Ubuntu Jammy overcloud host image to Dev Cloud
335+ - name : Upload Ubuntu Jammy overcloud host image to current Dev Cloud (SMS/Leafcloud)
308336 run : |
309337 source venvs/kayobe/bin/activate &&
310338 source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -318,6 +346,20 @@ jobs:
318346 OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
319347 if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
320348
349+ - name : Upload Ubuntu Jammy overcloud host image to other Dev Cloud (Leafcloud/SMS)
350+ run : |
351+ source venvs/kayobe/bin/activate &&
352+ source src/kayobe-config/kayobe-env --environment ci-builder &&
353+ kayobe playbook run \
354+ src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
355+ -e local_image_path="/opt/kayobe/images/overcloud-ubuntu-jammy/overcloud-ubuntu-jammy.qcow2" \
356+ -e image_name=overcloud-ubuntu-jammy-${{ steps.host_image_tag.outputs.host_image_tag }}
357+ env :
358+ CLOUDS_YAML : ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
359+ OS_APPLICATION_CREDENTIAL_ID : ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
360+ OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
361+ if : inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
362+
321363 - name : Copy logs back
322364 continue-on-error : true
323365 run : |
0 commit comments