Skip to content

Commit d2ab915

Browse files
committed
Merge branch 'stackhpc/2025.1' into aarch64-image-build.
1 parent 30557b3 commit d2ab915

File tree

265 files changed

+5441
-3211
lines changed

Some content is hidden

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

265 files changed

+5441
-3211
lines changed

.ansible-lint-ignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ etc/kayobe/ansible/vault-generate-internal-tls.yml fqcn[action-core]
55
etc/kayobe/ansible/vault-generate-test-external-tls.yml fqcn[action-core]
66
etc/kayobe/ansible/rabbitmq-reset.yml command-instead-of-module
77
etc/kayobe/ansible/ubuntu-upgrade.yml syntax-check[missing-file]
8+
etc/kayobe/ansible/check-kayobe-version.yml command-instead-of-module
9+
etc/kayobe/ansible/check-kolla-ansible-version.yml command-instead-of-module

.automation

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

Lines changed: 4 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ on:
77
description: Build Rocky Linux 9
88
type: boolean
99
default: true
10-
ubuntu-jammy:
11-
description: Build Ubuntu 22.04 Jammy
12-
type: boolean
13-
default: true
1410
ubuntu-noble:
1511
description: Build Ubuntu 24.04 Noble
1612
type: boolean
@@ -216,65 +212,6 @@ jobs:
216212
env:
217213
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
218214

219-
- name: Build a Ubuntu 22.04 Jammy IPA image
220-
id: build_ubuntu_jammy_ipa
221-
continue-on-error: true
222-
run: |
223-
source venvs/kayobe/bin/activate &&
224-
source src/kayobe-config/kayobe-env --environment ci-builder &&
225-
kayobe overcloud deployment image build --force-rebuild \
226-
-e os_distribution="ubuntu" \
227-
-e os_release="jammy" \
228-
-e ipa_ci_builder_distribution="ubuntu" \
229-
-e ipa_ci_builder_release="jammy"
230-
env:
231-
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
232-
if: inputs.ubuntu-jammy
233-
234-
- name: Show last error logs
235-
continue-on-error: true
236-
run: |
237-
source venvs/kayobe/bin/activate &&
238-
source src/kayobe-config/kayobe-env --environment ci-builder &&
239-
kayobe seed host command run --command "tail -200 /opt/kayobe/images/ipa/ipa.stdout" --show-output
240-
env:
241-
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
242-
if: steps.build_ubuntu_jammy_ipa.outcome == 'failure'
243-
244-
- name: Upload Ubuntu 22.04 Jammy IPA kernel image to Ark
245-
run: |
246-
source venvs/kayobe/bin/activate &&
247-
source src/kayobe-config/kayobe-env --environment ci-builder &&
248-
kayobe playbook run \
249-
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
250-
-e artifact_path=/opt/kayobe/images/ipa \
251-
-e artifact_type=ipa-images \
252-
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
253-
-e os_distribution="ubuntu" \
254-
-e os_release="jammy" \
255-
-e file_regex='*.kernel' \
256-
-e upload_checksum=true
257-
env:
258-
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
259-
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy_ipa.outcome == 'success'
260-
261-
- name: Upload Ubuntu 22.04 Jammy IPA ramdisk image to Ark
262-
run: |
263-
source venvs/kayobe/bin/activate &&
264-
source src/kayobe-config/kayobe-env --environment ci-builder &&
265-
kayobe playbook run \
266-
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \
267-
-e artifact_path=/opt/kayobe/images/ipa \
268-
-e artifact_type=ipa-images \
269-
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
270-
-e os_distribution="ubuntu" \
271-
-e os_release="jammy" \
272-
-e file_regex='*.initramfs' \
273-
-e upload_checksum=true
274-
env:
275-
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
276-
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy_ipa.outcome == 'success'
277-
278215
- name: Build a Ubuntu 24.04 Noble IPA image
279216
id: build_ubuntu_noble_ipa
280217
continue-on-error: true
@@ -311,8 +248,7 @@ jobs:
311248
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
312249
-e os_distribution="ubuntu" \
313250
-e os_release="noble" \
314-
-e file_regex='*.kernel' \
315-
-e upload_checksum=true
251+
-e file_regex='*.kernel'
316252
env:
317253
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
318254
if: inputs.ubuntu-noble && steps.build_ubuntu_noble_ipa.outcome == 'success'
@@ -328,8 +264,7 @@ jobs:
328264
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
329265
-e os_distribution="ubuntu" \
330266
-e os_release="noble" \
331-
-e file_regex='*.initramfs' \
332-
-e upload_checksum=true
267+
-e file_regex='*.initramfs'
333268
env:
334269
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
335270
if: inputs.ubuntu-noble && steps.build_ubuntu_noble_ipa.outcome == 'success'
@@ -370,8 +305,7 @@ jobs:
370305
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
371306
-e os_distribution="rocky" \
372307
-e os_release="9" \
373-
-e file_regex='*.kernel' \
374-
-e upload_checksum=true
308+
-e file_regex='*.kernel'
375309
env:
376310
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
377311
if: inputs.rocky9 && steps.build_rocky_9_ipa.outcome == 'success'
@@ -387,8 +321,7 @@ jobs:
387321
-e artifact_tag=${{ steps.ipa_image_tag.outputs.ipa_image_tag }} \
388322
-e os_distribution="rocky" \
389323
-e os_release="9" \
390-
-e file_regex='*.initramfs' \
391-
-e upload_checksum=true
324+
-e file_regex='*.initramfs'
392325
env:
393326
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
394327
if: inputs.rocky9 && steps.build_rocky_9_ipa.outcome == 'success'
@@ -411,7 +344,6 @@ jobs:
411344
echo "Builds failed. See workflow artifacts for details." &&
412345
exit 1
413346
if: steps.build_rocky_9_ipa.outcome == 'failure' ||
414-
steps.build_ubuntu_jammy_ipa.outcome == 'failure' ||
415347
steps.build_ubuntu_noble_ipa.outcome == 'failure'
416348

417349
- name: Destroy

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

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ on:
77
description: Promote Rocky Linux 9
88
type: boolean
99
default: true
10-
ubuntu-jammy:
11-
description: Promote Ubuntu 22.04 Jammy
12-
type: boolean
13-
default: true
1410
ubuntu-noble:
1511
description: Promote Ubuntu 24.04 Noble
1612
type: boolean
@@ -25,11 +21,11 @@ jobs:
2521
ipa-image-promote:
2622
name: Promote IPA image
2723
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
28-
runs-on: ubuntu-22.04
24+
runs-on: ubuntu-latest
2925
steps:
3026
- name: Validate inputs
3127
run: |
32-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
28+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
3329
echo "At least one distribution must be selected"
3430
exit 1
3531
fi
@@ -89,20 +85,6 @@ jobs:
8985
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
9086
if: inputs.rocky9
9187

92-
- name: Promote Ubuntu Jammy 22.04 IPA image artifact
93-
run: |
94-
source venvs/kayobe/bin/activate &&
95-
source src/kayobe-config/kayobe-env --environment ci-builder &&
96-
kayobe playbook run \
97-
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-promote.yml \
98-
-e artifact_type="ipa-images" \
99-
-e os_distribution='ubuntu' \
100-
-e os_release='jammy'
101-
env:
102-
ARTIFACT_TAG: ${{ inputs.image_tag }}
103-
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
104-
if: inputs.ubuntu-jammy
105-
10688
- name: Promote Ubuntu Noble 24.04 IPA image artifact
10789
run: |
10890
source venvs/kayobe/bin/activate &&

.github/workflows/multinode-inputs.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ class OSRelease:
1717
@dataclass
1818
class OpenStackRelease:
1919
version: str
20-
previous_version: str
2120
os_releases: t.List[OSRelease]
2221

2322

@@ -34,11 +33,12 @@ class Scenario:
3433
UBUNTU_NOBLE = OSRelease("ubuntu", "noble", "ubuntu")
3534
# NOTE(upgrade): Add supported releases here.
3635
OPENSTACK_RELEASES = [
37-
OpenStackRelease("2024.1", "2023.1", [ROCKY_9, UBUNTU_JAMMY]),
38-
OpenStackRelease("2023.1", "zed", [ROCKY_9, UBUNTU_JAMMY]),
39-
OpenStackRelease("master", "2024.1", [ROCKY_9, UBUNTU_NOBLE])
36+
OpenStackRelease("2023.1", [ROCKY_9, UBUNTU_JAMMY]),
37+
OpenStackRelease("2024.1", [ROCKY_9, UBUNTU_JAMMY]),
38+
OpenStackRelease("2025.1", [ROCKY_9, UBUNTU_NOBLE]),
4039
]
4140
NEUTRON_PLUGINS = ["ovs", "ovn"]
41+
VERSION_HIERARCHY = ["zed", "2023.1", "2024.1", "2025.1"]
4242

4343

4444
def main() -> None:
@@ -52,13 +52,20 @@ def random_scenario() -> Scenario:
5252
openstack_release = random.choice(OPENSTACK_RELEASES)
5353
os_release = random.choice(openstack_release.os_releases)
5454
neutron_plugin = random.choice(NEUTRON_PLUGINS)
55-
upgrade = 'major' if random.random() > 0.6 else 'none'
55+
upgrade = "major" if random.random() > 0.6 else "none"
5656
return Scenario(openstack_release, os_release, neutron_plugin, upgrade)
5757

5858

5959
def generate_inputs(scenario: Scenario) -> t.Dict[str, str]:
6060
branch = get_branch(scenario.openstack_release.version)
61-
previous_branch = get_branch(scenario.openstack_release.previous_version)
61+
previous_branch = get_branch(
62+
VERSION_HIERARCHY[
63+
VERSION_HIERARCHY.index(scenario.openstack_release.version) - 1
64+
]
65+
)
66+
terraform_kayobe_multinode_version = get_tkm_version(
67+
scenario.openstack_release.version
68+
)
6269
inputs = {
6370
"os_distribution": scenario.os_release.distribution,
6471
"os_release": scenario.os_release.release,
@@ -67,6 +74,7 @@ def generate_inputs(scenario: Scenario) -> t.Dict[str, str]:
6774
"upgrade": scenario.upgrade,
6875
"stackhpc_kayobe_config_version": branch,
6976
"stackhpc_kayobe_config_previous_version": previous_branch,
77+
"terraform_kayobe_multinode_version": terraform_kayobe_multinode_version,
7078
}
7179
return inputs
7280

@@ -75,6 +83,13 @@ def get_branch(version: str) -> str:
7583
return f"stackhpc/{version}"
7684

7785

86+
def get_tkm_version(version: str) -> str:
87+
if version in ["zed", "2023.1"]:
88+
return "ea61ea1730e179e05e8f0e58b759267664c555e7"
89+
else:
90+
return "main"
91+
92+
7893
def write_output(name: str, value: str) -> None:
7994
print(f"{name}={value}")
8095

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ on:
77
description: Build Rocky Linux 9
88
type: boolean
99
default: true
10-
ubuntu-jammy:
11-
description: Build Ubuntu 22.04 Jammy
12-
type: boolean
13-
default: true
1410
ubuntu-noble:
1511
description: Build Ubuntu 24.04 Noble
1612
type: boolean
@@ -60,7 +56,7 @@ jobs:
6056
steps:
6157
- name: Validate inputs
6258
run: |
63-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
59+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
6460
echo "At least one distribution must be selected"
6561
exit 1
6662
fi
@@ -133,7 +129,7 @@ jobs:
133129
ssh_public_key = "id_rsa.pub"
134130
ssh_username = "ubuntu"
135131
aio_vm_name = "skc-host-image-builder"
136-
# Must be an Ubuntu Jammy host to successfully build all images
132+
# Must be an Ubuntu Noble host to successfully build all images
137133
# This MUST NOT be an LVM image. It can cause confusing conficts with the built image.
138134
aio_vm_image = "${{ vars.HOST_IMAGE_BUILD_IMAGE }}"
139135
aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }}"
@@ -442,7 +438,6 @@ jobs:
442438
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
443439
if: inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success'
444440

445-
446441
- name: Copy logs back
447442
continue-on-error: true
448443
run: |
@@ -456,7 +451,6 @@ jobs:
456451
echo "Builds failed. See workflow artifacts for details." &&
457452
exit 1
458453
if: steps.build_rocky_9.outcome == 'failure' ||
459-
steps.build_ubuntu_jammy.outcome == 'failure' ||
460454
steps.build_ubuntu_noble.outcome == 'failure'
461455

462456
- name: Upload logs artifact

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

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ on:
77
description: Promote Rocky Linux 9
88
type: boolean
99
default: true
10-
ubuntu-jammy:
11-
description: Promote Ubuntu 22.04 Jammy
12-
type: boolean
13-
default: true
1410
ubuntu-noble:
1511
description: Promote Ubuntu 24.04 Noble
1612
type: boolean
@@ -25,11 +21,11 @@ jobs:
2521
overcloud-host-image-promote:
2622
name: Promote overcloud host image
2723
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
28-
runs-on: ubuntu-22.04
24+
runs-on: ubuntu-24.04
2925
steps:
3026
- name: Validate inputs
3127
run: |
32-
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
28+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
3329
echo "At least one distribution must be selected"
3430
exit 1
3531
fi
@@ -89,20 +85,6 @@ jobs:
8985
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
9086
if: inputs.rocky9
9187

92-
- name: Promote Ubuntu Jammy 22.04 overcloud host image artifact
93-
run: |
94-
source venvs/kayobe/bin/activate &&
95-
source src/kayobe-config/kayobe-env --environment ci-builder &&
96-
kayobe playbook run \
97-
src/kayobe-config/etc/kayobe/ansible/pulp-artifact-promote.yml \
98-
-e artifact_type="kayobe-images" \
99-
-e os_distribution='ubuntu' \
100-
-e os_release='jammy'
101-
env:
102-
ARTIFACT_TAG: ${{ inputs.image_tag }}
103-
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
104-
if: inputs.ubuntu-jammy
105-
10688
- name: Promote Ubuntu Noble 24.04 overcloud host image artifact
10789
run: |
10890
source venvs/kayobe/bin/activate &&

0 commit comments

Comments
 (0)