Skip to content

Commit b3ee88b

Browse files
committed
Merge branch 'stackhpc/2024.1' into share-images
2 parents 06a2e53 + 93aaf28 commit b3ee88b

File tree

102 files changed

+3345
-155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+3345
-155
lines changed

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

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ on:
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
@@ -271,6 +275,65 @@ jobs:
271275
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
272276
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy_ipa.outcome == 'success'
273277

278+
- name: Build a Ubuntu 24.04 Noble IPA image
279+
id: build_ubuntu_noble_ipa
280+
continue-on-error: true
281+
run: |
282+
source venvs/kayobe/bin/activate &&
283+
source src/kayobe-config/kayobe-env --environment ci-builder &&
284+
kayobe overcloud deployment image build --force-rebuild \
285+
-e os_distribution="ubuntu" \
286+
-e os_release="noble" \
287+
-e ipa_ci_builder_distribution="ubuntu" \
288+
-e ipa_ci_builder_release="noble"
289+
env:
290+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
291+
if: inputs.ubuntu-noble
292+
293+
- name: Show last error logs
294+
continue-on-error: true
295+
run: |
296+
source venvs/kayobe/bin/activate &&
297+
source src/kayobe-config/kayobe-env --environment ci-builder &&
298+
kayobe seed host command run --command "tail -200 /opt/kayobe/images/ipa/ipa.stdout" --show-output
299+
env:
300+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
301+
if: steps.build_ubuntu_noble_ipa.outcome == 'failure'
302+
303+
- name: Upload Ubuntu 24.04 Noble IPA kernel image to Ark
304+
run: |
305+
source venvs/kayobe/bin/activate &&
306+
source src/kayobe-config/kayobe-env --environment ci-builder &&
307+
kayobe playbook run \
308+
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
309+
-e artifact_path=/opt/kayobe/images/ipa \
310+
-e artifact_type=ipa-images \
311+
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
312+
-e os_distribution="ubuntu" \
313+
-e os_release="noble" \
314+
-e file_regex='*.kernel' \
315+
-e upload_checksum=true
316+
env:
317+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
318+
if: inputs.ubuntu-noble && steps.build_ubuntu_noble_ipa.outcome == 'success'
319+
320+
- name: Upload Ubuntu 24.04 Noble IPA ramdisk image to Ark
321+
run: |
322+
source venvs/kayobe/bin/activate &&
323+
source src/kayobe-config/kayobe-env --environment ci-builder &&
324+
kayobe playbook run \
325+
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
326+
-e artifact_path=/opt/kayobe/images/ipa \
327+
-e artifact_type=ipa-images \
328+
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
329+
-e os_distribution="ubuntu" \
330+
-e os_release="noble" \
331+
-e file_regex='*.initramfs' \
332+
-e upload_checksum=true
333+
env:
334+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
335+
if: inputs.ubuntu-noble && steps.build_ubuntu_noble_ipa.outcome == 'success'
336+
274337
- name: Build a Rocky 9 IPA image
275338
id: build_rocky_9_ipa
276339
continue-on-error: true
@@ -348,7 +411,8 @@ jobs:
348411
echo "Builds failed. See workflow artifacts for details." &&
349412
exit 1
350413
if: steps.build_rocky_9_ipa.outcome == 'failure' ||
351-
steps.build_ubuntu_jammy_ipa.outcome == 'failure'
414+
steps.build_ubuntu_jammy_ipa.outcome == 'failure' ||
415+
steps.build_ubuntu_noble_ipa.outcome == 'failure'
352416

353417
- name: Destroy
354418
run: terraform destroy -auto-approve

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ on:
1111
description: Promote Ubuntu 22.04 Jammy
1212
type: boolean
1313
default: true
14+
ubuntu-noble:
15+
description: Promote Ubuntu 24.04 Noble
16+
type: boolean
17+
default: true
1418
image_tag:
1519
description: Tag to promote
1620
type: string
@@ -25,7 +29,7 @@ jobs:
2529
steps:
2630
- name: Validate inputs
2731
run: |
28-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
32+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
2933
echo "At least one distribution must be selected"
3034
exit 1
3135
fi
@@ -98,3 +102,17 @@ jobs:
98102
ARTIFACT_TAG: ${{ inputs.image_tag }}
99103
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
100104
if: inputs.ubuntu-jammy
105+
106+
- name: Promote Ubuntu Noble 24.04 IPA image artifact
107+
run: |
108+
source venvs/kayobe/bin/activate &&
109+
source src/kayobe-config/kayobe-env --environment ci-builder &&
110+
kayobe playbook run \
111+
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-promote.yml \
112+
-e artifact_type="ipa-images" \
113+
-e os_distribution='ubuntu' \
114+
-e os_release='noble'
115+
env:
116+
ARTIFACT_TAG: ${{ inputs.image_tag }}
117+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
118+
if: inputs.ubuntu-noble

.github/workflows/multinode-inputs.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ class Scenario:
3131

3232
ROCKY_9 = OSRelease("rocky", "9", "cloud-user")
3333
UBUNTU_JAMMY = OSRelease("ubuntu", "jammy", "ubuntu")
34+
UBUNTU_NOBLE = OSRelease("ubuntu", "noble", "ubuntu")
3435
# NOTE(upgrade): Add supported releases here.
3536
OPENSTACK_RELEASES = [
3637
OpenStackRelease("2024.1", "2023.1", [ROCKY_9, UBUNTU_JAMMY]),
3738
OpenStackRelease("2023.1", "zed", [ROCKY_9, UBUNTU_JAMMY]),
39+
OpenStackRelease("master", "2024.1", [ROCKY_9, UBUNTU_NOBLE])
3840
]
3941
NEUTRON_PLUGINS = ["ovs", "ovn"]
4042

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

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ on:
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
@@ -48,7 +52,7 @@ jobs:
4852
steps:
4953
- name: Validate inputs
5054
run: |
51-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
55+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
5256
echo "At least one distribution must be selected"
5357
exit 1
5458
fi
@@ -360,6 +364,75 @@ jobs:
360364
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
361365
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
362366

367+
- name: Build an Ubuntu Noble 24.04 overcloud host image
368+
id: build_ubuntu_noble
369+
continue-on-error: true
370+
run: |
371+
source venvs/kayobe/bin/activate &&
372+
source src/kayobe-config/kayobe-env --environment ci-builder &&
373+
kayobe overcloud host image build --force-rebuild \
374+
-e os_distribution="ubuntu" \
375+
-e os_release="noble" \
376+
-e stackhpc_overcloud_dib_name=overcloud-ubuntu-noble
377+
env:
378+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
379+
if: inputs.ubuntu-noble
380+
381+
- name: Show last error logs
382+
continue-on-error: true
383+
run: |
384+
source venvs/kayobe/bin/activate &&
385+
source src/kayobe-config/kayobe-env --environment ci-builder &&
386+
kayobe seed host command run --command "tail -200 /opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.stdout" --show-output
387+
env:
388+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
389+
if: steps.build_ubuntu_noble.outcome == 'failure'
390+
391+
- name: Upload Ubuntu Noble 24.04 overcloud host image to Ark
392+
run: |
393+
source venvs/kayobe/bin/activate &&
394+
source src/kayobe-config/kayobe-env --environment ci-builder &&
395+
kayobe playbook run \
396+
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
397+
-e artifact_path=/opt/kayobe/images/overcloud-ubuntu-noble \
398+
-e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \
399+
-e artifact_type="kayobe-images" \
400+
-e file_regex="*.qcow2" \
401+
-e os_distribution="ubuntu" \
402+
-e os_release="noble"
403+
env:
404+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
405+
if: inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
406+
407+
- name: Upload Ubuntu Noble overcloud host image to current Dev Cloud (SMS/Leafcloud)
408+
run: |
409+
source venvs/kayobe/bin/activate &&
410+
source src/kayobe-config/kayobe-env --environment ci-builder &&
411+
kayobe playbook run \
412+
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
413+
-e local_image_path="/opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.qcow2" \
414+
-e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }}
415+
env:
416+
CLOUDS_YAML: ${{ secrets.CLOUDS_YAML }}
417+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
418+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
419+
if: inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
420+
421+
- name: Upload Ubuntu Noble overcloud host image to other Dev Cloud (Leafcloud/SMS)
422+
run: |
423+
source venvs/kayobe/bin/activate &&
424+
source src/kayobe-config/kayobe-env --environment ci-builder &&
425+
kayobe playbook run \
426+
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
427+
-e local_image_path="/opt/kayobe/images/overcloud-ubuntu-noble/overcloud-ubuntu-noble.qcow2" \
428+
-e image_name=overcloud-ubuntu-noble-${{ steps.host_image_tag.outputs.host_image_tag }}
429+
env:
430+
CLOUDS_YAML: ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
431+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
432+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
433+
if: inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
434+
435+
363436
- name: Copy logs back
364437
continue-on-error: true
365438
run: |
@@ -373,7 +446,8 @@ jobs:
373446
echo "Builds failed. See workflow artifacts for details." &&
374447
exit 1
375448
if: steps.build_rocky_9.outcome == 'failure' ||
376-
steps.build_ubuntu_jammy.outcome == 'failure'
449+
steps.build_ubuntu_jammy.outcome == 'failure' ||
450+
steps.build_ubuntu_noble.outcome == 'failure'
377451

378452
- name: Upload logs artifact
379453
uses: actions/upload-artifact@v4

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ on:
1111
description: Promote Ubuntu 22.04 Jammy
1212
type: boolean
1313
default: true
14+
ubuntu-noble:
15+
description: Promote Ubuntu 24.04 Noble
16+
type: boolean
17+
default: true
1418
image_tag:
1519
description: Tag to promote
1620
type: string
@@ -25,7 +29,7 @@ jobs:
2529
steps:
2630
- name: Validate inputs
2731
run: |
28-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
32+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
2933
echo "At least one distribution must be selected"
3034
exit 1
3135
fi
@@ -98,3 +102,17 @@ jobs:
98102
ARTIFACT_TAG: ${{ inputs.image_tag }}
99103
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
100104
if: inputs.ubuntu-jammy
105+
106+
- name: Promote Ubuntu Noble 24.04 overcloud host image artifact
107+
run: |
108+
source venvs/kayobe/bin/activate &&
109+
source src/kayobe-config/kayobe-env --environment ci-builder &&
110+
kayobe playbook run \
111+
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-promote.yml \
112+
-e artifact_type="kayobe-images" \
113+
-e os_distribution='ubuntu' \
114+
-e os_release='noble'
115+
env:
116+
ARTIFACT_TAG: ${{ inputs.image_tag }}
117+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
118+
if: inputs.ubuntu-noble

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

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ on:
1111
description: Upload Ubuntu 22.04 Jammy
1212
type: boolean
1313
default: true
14+
ubuntu-noble:
15+
description: Upload Ubuntu 24.04 Noble
16+
type: boolean
17+
default: true
1418
kayobe-environment:
1519
description: Kayobe environment to use
1620
type: string
@@ -50,7 +54,7 @@ jobs:
5054
steps:
5155
- name: Validate inputs
5256
run: |
53-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
57+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
5458
echo "At least one distribution must be selected"
5559
exit 1
5660
fi
@@ -185,3 +189,48 @@ jobs:
185189
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
186190
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
187191
if: inputs.ubuntu-jammy && steps.ubuntu_jammy_image_exists.outcome == 'failure'
192+
193+
- name: Output Ubuntu Noble image tag
194+
id: ubuntu_noble_image_tag
195+
run: |
196+
echo image_tag=$(grep stackhpc_ubuntu_noble_overcloud_host_image_version: src/kayobe-config/etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
197+
198+
- name: Check if image exists already
199+
id: ubuntu_noble_image_exists
200+
run: |
201+
source venvs/kayobe/bin/activate &&
202+
openstack image show \
203+
overcloud-ubuntu-noble-${{ steps.ubuntu_noble_image_tag.outputs.image_tag }}
204+
env:
205+
OS_CLOUD: openstack
206+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
207+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
208+
continue-on-error: true
209+
210+
- name: Download Ubuntu Noble 24.04 overcloud host image from Ark
211+
run: |
212+
source venvs/kayobe/bin/activate &&
213+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
214+
kayobe playbook run \
215+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
216+
-e os_distribution="ubuntu" \
217+
-e os_release="noble"
218+
env:
219+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
220+
if: inputs.ubuntu-noble && steps.ubuntu_noble_image_exists.outcome == 'failure'
221+
222+
- name: Upload Ubuntu Noble 24.04 overcloud host image to Cloud
223+
run: |
224+
source venvs/kayobe/bin/activate &&
225+
openstack image create \
226+
overcloud-ubuntu-noble-${{ steps.ubuntu_noble_image_tag.outputs.image_tag }} \
227+
--container-format bare \
228+
--disk-format qcow2 \
229+
--file /tmp/ubuntu-noble.qcow2 \
230+
--private \
231+
--progress
232+
env:
233+
OS_CLOUD: openstack
234+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
235+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
236+
if: inputs.ubuntu-noble && steps.ubuntu_noble_image_exists.outcome == 'failure'

.github/workflows/stackhpc-all-in-one.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,9 @@ jobs:
468468
-v $(pwd)/sct-results:/stack/sct-results \
469469
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
470470
$KAYOBE_IMAGE \
471-
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-cloud-tests.yml' -e sct_version=${{ inputs.stackhpc_cloud_tests_version }}
471+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-cloud-tests.yml' \
472+
${{ inputs.upgrade && '-e selinux_state=disabled' }} \
473+
-e sct_version=${{ inputs.stackhpc_cloud_tests_version }}
472474
env:
473475
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
474476

0 commit comments

Comments
 (0)