Skip to content

Commit c1c1c61

Browse files
authored
Support for SMS & Leafcloud runner builds (#1507)
Support for SMS & Leafcloud hosted image builds
1 parent 9b53117 commit c1c1c61

File tree

2 files changed

+74
-17
lines changed

2 files changed

+74
-17
lines changed

.github/workflows/ipa-image-build.yml

+23-8
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ on:
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
@@ -26,10 +33,18 @@ env:
2633
KAYOBE_ENVIRONMENT: ci-builder
2734
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
2835
jobs:
36+
runner-selection:
37+
uses: ./.github/workflows/runner-selector.yml
38+
with:
39+
runner_env: ${{ inputs.runner_env }}
40+
2941
ipa-image-build:
3042
name: Build IPA images
3143
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
32-
runs-on: arc-skc-host-image-builder-runner
44+
environment: ${{ inputs.runner_env }}
45+
runs-on: ${{ needs.runner-selection.outputs.runner_name_image_build }}
46+
needs:
47+
- runner-selection
3348
permissions: {}
3449
steps:
3550
- name: Install Package
@@ -99,20 +114,20 @@ jobs:
99114
ssh_public_key = "id_rsa.pub"
100115
ssh_username = "ubuntu"
101116
aio_vm_name = "skc-ipa-image-builder"
102-
aio_vm_image = "Ubuntu-22.04"
103-
aio_vm_flavor = "en1.large"
104-
aio_vm_network = "stackhpc-ci"
105-
aio_vm_subnet = "stackhpc-ci"
117+
aio_vm_image = "${{ vars.HOST_IMAGE_BUILD_IMAGE }}"
118+
aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }}"
119+
aio_vm_network = "${{ vars.HOST_IMAGE_BUILD_NETWORK }}"
120+
aio_vm_subnet = "${{ vars.HOST_IMAGE_BUILD_SUBNET }}"
106121
aio_vm_interface = "ens3"
107-
aio_vm_volume_size = 100
122+
aio_vm_volume_size = "${{ vars.HOST_IMAGE_BUILD_VOLUME }}"
108123
EOF
109124
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
110125

111126
- name: Terraform Plan
112127
run: terraform plan
113128
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
114129
env:
115-
OS_CLOUD: "openstack"
130+
OS_CLOUD: ${{ vars.OS_CLOUD }}
116131
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
117132
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
118133

@@ -132,7 +147,7 @@ jobs:
132147
exit 1
133148
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
134149
env:
135-
OS_CLOUD: "openstack"
150+
OS_CLOUD: ${{ vars.OS_CLOUD }}
136151
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
137152
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
138153

.github/workflows/overcloud-host-image-build.yml

+51-9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ on:
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
@@ -26,10 +33,17 @@ env:
2633
KAYOBE_ENVIRONMENT: ci-builder
2734
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
2835
jobs:
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

Comments
 (0)