From 7aa154f0d4eb6513593f1a187ca0d4c9ec916581 Mon Sep 17 00:00:00 2001 From: "max.bed4d" Date: Tue, 4 Feb 2025 10:52:03 +0000 Subject: [PATCH 01/23] Point DiB to aarch64 elements branch --- etc/kayobe/overcloud-dib.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/overcloud-dib.yml b/etc/kayobe/overcloud-dib.yml index 541103f08..f7e747c71 100644 --- a/etc/kayobe/overcloud-dib.yml +++ b/etc/kayobe/overcloud-dib.yml @@ -67,7 +67,7 @@ overcloud_dib_host_packages_extra: overcloud_dib_git_elements_extra: - repo: "https://github.com/stackhpc/stackhpc-image-elements" local: "{{ source_checkout_path }}/stackhpc-image-elements" - version: "v1.6.3" + version: "aarch64-image-build" elements_path: "elements" # List of git repositories containing Diskimage Builder (DIB) elements. See From 733d07385e7e8b604c137b49f907c5c156baf5a4 Mon Sep 17 00:00:00 2001 From: "max.bed4d" Date: Tue, 4 Feb 2025 15:19:54 +0000 Subject: [PATCH 02/23] Add new variable to set architecture var --- etc/kayobe/overcloud-dib.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/kayobe/overcloud-dib.yml b/etc/kayobe/overcloud-dib.yml index f7e747c71..095054734 100644 --- a/etc/kayobe/overcloud-dib.yml +++ b/etc/kayobe/overcloud-dib.yml @@ -70,6 +70,9 @@ overcloud_dib_git_elements_extra: version: "aarch64-image-build" elements_path: "elements" + +overcloud_dib_architecture: "arm64" + # List of git repositories containing Diskimage Builder (DIB) elements. See # stackhpc.openstack.os_images role for usage. Default is a combination of # overcloud_dib_git_elements_default and overcloud_dib_git_elements_extra. From 67fc69668395154645bc0b117e69f4cc74fcf686 Mon Sep 17 00:00:00 2001 From: "max.bed4d" Date: Tue, 4 Feb 2025 15:38:48 +0000 Subject: [PATCH 03/23] Add call to custom branch of kayobe --- etc/kayobe/environments/ci-builder/overcloud-dib.yml | 2 ++ requirements.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/etc/kayobe/environments/ci-builder/overcloud-dib.yml b/etc/kayobe/environments/ci-builder/overcloud-dib.yml index 6a8f3b0f1..2a9dfc1a4 100644 --- a/etc/kayobe/environments/ci-builder/overcloud-dib.yml +++ b/etc/kayobe/environments/ci-builder/overcloud-dib.yml @@ -18,3 +18,5 @@ overcloud_dib_build_host_images: true # "packages": "{{ overcloud_dib_packages }}"}. overcloud_dib_host_images: - "{{ stackhpc_overcloud_dib_host_image }}" + +overcloud_dib_architecture: "arm64" \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index aaf998164..edf89700d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -kayobe@git+https://github.com/stackhpc/kayobe@stackhpc/2024.1 +kayobe@git+https://github.com/stackhpc/kayobe@aarch64-image-build ansible-modules-hashivault>=5.2.1 jmespath From 2e3e062c0d98113cae6c3ed7622888293ffdc6a2 Mon Sep 17 00:00:00 2001 From: "max.bed4d" Date: Wed, 5 Feb 2025 11:41:34 +0000 Subject: [PATCH 04/23] Add qemu and DIB flag to enable ARM64 docker platform --- .github/workflows/overcloud-host-image-build.yml | 2 +- etc/kayobe/stackhpc-overcloud-dib.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/overcloud-host-image-build.yml b/.github/workflows/overcloud-host-image-build.yml index a0c98c98f..c323170c1 100644 --- a/.github/workflows/overcloud-host-image-build.yml +++ b/.github/workflows/overcloud-host-image-build.yml @@ -212,7 +212,7 @@ jobs: source venvs/kayobe/bin/activate && source src/kayobe-config/kayobe-env --environment ci-builder && kayobe seed host command run \ - --command "sudo apt update && sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 python3-venv" --show-output + --command "sudo apt update && sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 python3-venv qemu-user-static" --show-output env: KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }} diff --git a/etc/kayobe/stackhpc-overcloud-dib.yml b/etc/kayobe/stackhpc-overcloud-dib.yml index 99f5ae836..7418c3fb4 100644 --- a/etc/kayobe/stackhpc-overcloud-dib.yml +++ b/etc/kayobe/stackhpc-overcloud-dib.yml @@ -58,6 +58,7 @@ stackhpc_overcloud_dib_env_vars: YUM: dnf # Workaround for stack user home ownership bug DIB_IMAGE_CACHE: "/tmp/yum" + DIB_CONTAINERFILE_BUILDOPTS: "--platform linux/{{ overcloud_dib_architecture }}" # StackHPC overcloud DIB image packages. stackhpc_overcloud_dib_packages: From 07d8057d3a0527c4d851f323a8713ce815433106 Mon Sep 17 00:00:00 2001 From: "max.bed4d" Date: Thu, 6 Feb 2025 13:14:04 +0000 Subject: [PATCH 05/23] Add ability to choose image build platform --- .github/workflows/overcloud-host-image-build.yml | 14 ++++++++++++-- etc/kayobe/ansible/openstack-host-image-upload.yml | 2 +- .../environments/ci-builder/overcloud-dib.yml | 2 -- etc/kayobe/kolla.yml | 5 +++++ etc/kayobe/overcloud-dib.yml | 6 +++--- etc/kayobe/stackhpc.yml | 4 ++++ requirements.txt | 2 +- 7 files changed, 26 insertions(+), 9 deletions(-) diff --git a/.github/workflows/overcloud-host-image-build.yml b/.github/workflows/overcloud-host-image-build.yml index c323170c1..df66a7949 100644 --- a/.github/workflows/overcloud-host-image-build.yml +++ b/.github/workflows/overcloud-host-image-build.yml @@ -18,6 +18,13 @@ on: options: - SMS Lab - Leafcloud + cpu-platform-architecture: + description: Select the image's build architecture + type: choice + default: x86 + options: + - x86 + - aarch64 secrets: KAYOBE_VAULT_PASSWORD: required: true @@ -32,6 +39,7 @@ env: ANSIBLE_FORCE_COLOR: True KAYOBE_ENVIRONMENT: ci-builder KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }} + overcloud_dib_architechture: ${{ inputs.cpu-platform-architecture == 'x86' && 'amd64' || 'arm64' }} jobs: runner-selection: uses: ./.github/workflows/runner-selector.yml @@ -256,7 +264,7 @@ jobs: src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \ -e artifact_path=/opt/kayobe/images/overcloud-rocky-9 \ -e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \ - -e artifact_type="kayobe-images" \ + -e artifact_type="kayobe-images/{{ inputs.cpu-platform-architecture }}" \ -e file_regex="*.qcow2" \ -e os_distribution="rocky" \ -e os_release="9" @@ -272,6 +280,7 @@ jobs: src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \ -e local_image_path="/opt/kayobe/images/overcloud-rocky-9/overcloud-rocky-9.qcow2" \ -e image_name=overcloud-rocky-9-${{ steps.host_image_tag.outputs.host_image_tag }} + -e cpu-platform=${{ env.overcloud_dib_architechture }} env: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }} @@ -324,7 +333,7 @@ jobs: src/kayobe-config/etc/kayobe/ansible/pulp-artifact-upload.yml \ -e artifact_path=/opt/kayobe/images/overcloud-ubuntu-jammy \ -e artifact_tag=${{ steps.host_image_tag.outputs.host_image_tag }} \ - -e artifact_type="kayobe-images" \ + -e artifact_type="kayobe-images/{{ inputs.cpu-platform-architecture }}" \ -e file_regex="*.qcow2" \ -e os_distribution="ubuntu" \ -e os_release="jammy" @@ -340,6 +349,7 @@ jobs: src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \ -e local_image_path="/opt/kayobe/images/overcloud-ubuntu-jammy/overcloud-ubuntu-jammy.qcow2" \ -e image_name=overcloud-ubuntu-jammy-${{ steps.host_image_tag.outputs.host_image_tag }} + -e cpu-platform=${{ env.overcloud_dib_architechture }} env: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }} diff --git a/etc/kayobe/ansible/openstack-host-image-upload.yml b/etc/kayobe/ansible/openstack-host-image-upload.yml index daff0549d..128780ec5 100644 --- a/etc/kayobe/ansible/openstack-host-image-upload.yml +++ b/etc/kayobe/ansible/openstack-host-image-upload.yml @@ -6,7 +6,7 @@ hosts: seed vars: local_image_path: /opt/kayobe/images/overcloud-{{ os_distribution }}-{{ os_release }}/overcloud-{{ os_distribution }}-{{ os_release }}.qcow2 - image_name: overcloud-{{ os_distribution }}-{{ os_release }} + image_name: overcloud-{{ os_distribution }}-{{ os_release }}-{{ cpu-platform }} tasks: - name: Upload image to Glance block: diff --git a/etc/kayobe/environments/ci-builder/overcloud-dib.yml b/etc/kayobe/environments/ci-builder/overcloud-dib.yml index 2a9dfc1a4..6a8f3b0f1 100644 --- a/etc/kayobe/environments/ci-builder/overcloud-dib.yml +++ b/etc/kayobe/environments/ci-builder/overcloud-dib.yml @@ -18,5 +18,3 @@ overcloud_dib_build_host_images: true # "packages": "{{ overcloud_dib_packages }}"}. overcloud_dib_host_images: - "{{ stackhpc_overcloud_dib_host_image }}" - -overcloud_dib_architecture: "arm64" \ No newline at end of file diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index 68a3da9f5..fadb041af 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -426,6 +426,11 @@ kolla_build_customizations: "{{ kolla_build_customizations_common | combine(koll # Dict mapping Kolla Dockerfile ARG names to their values. kolla_build_args: {} +############################################################################### +# Kolla platform architecture configuration. + +kolla_base_arch: "{{ 'aarch64' if stackhpc_cpu_arch == 'arm64' else 'x86' }}" + ############################################################################### # Kolla-ansible inventory configuration. diff --git a/etc/kayobe/overcloud-dib.yml b/etc/kayobe/overcloud-dib.yml index 095054734..06e645665 100644 --- a/etc/kayobe/overcloud-dib.yml +++ b/etc/kayobe/overcloud-dib.yml @@ -67,11 +67,11 @@ overcloud_dib_host_packages_extra: overcloud_dib_git_elements_extra: - repo: "https://github.com/stackhpc/stackhpc-image-elements" local: "{{ source_checkout_path }}/stackhpc-image-elements" - version: "aarch64-image-build" + version: "v1.6.3" elements_path: "elements" - -overcloud_dib_architecture: "arm64" +# Selects the architecture of the overcloud host image being built. +overcloud_dib_architechture: "{{ 'amd64' if stackhpc_cpu_arch == 'x86' else 'arm64' }}" # List of git repositories containing Diskimage Builder (DIB) elements. See # stackhpc.openstack.os_images role for usage. Default is a combination of diff --git a/etc/kayobe/stackhpc.yml b/etc/kayobe/stackhpc.yml index 4fc4349ab..83fdc235a 100644 --- a/etc/kayobe/stackhpc.yml +++ b/etc/kayobe/stackhpc.yml @@ -27,6 +27,10 @@ stackhpc_include_os_minor_version_in_repo_url: false stackhpc_rocky_9_url_version: "{{ '9.' + stackhpc_pulp_repo_rocky_9_minor_version | string if stackhpc_include_os_minor_version_in_repo_url | bool else '9' }}" +# Pick build architecture for kolla and disk image builder +# Choose between x86 or arm64 +stackhpc_cpu_arch: 'x86' + ############################################################################### # Debs # Ubuntu jammy diff --git a/requirements.txt b/requirements.txt index edf89700d..aaf998164 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -kayobe@git+https://github.com/stackhpc/kayobe@aarch64-image-build +kayobe@git+https://github.com/stackhpc/kayobe@stackhpc/2024.1 ansible-modules-hashivault>=5.2.1 jmespath From 3ffeea78b41569cd95612a8e0692546cbb906450 Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:26:27 +0000 Subject: [PATCH 06/23] Update etc/kayobe/kolla.yml Co-authored-by: Matt Anson --- etc/kayobe/kolla.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index fadb041af..741bfd4f2 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -429,7 +429,7 @@ kolla_build_args: {} ############################################################################### # Kolla platform architecture configuration. -kolla_base_arch: "{{ 'aarch64' if stackhpc_cpu_arch == 'arm64' else 'x86' }}" +kolla_base_arch: "{{ 'aarch64' if stackhpc_cpu_arch == 'arm64' else stackhpc_cpu_arch }}" ############################################################################### # Kolla-ansible inventory configuration. From c35e545ddb835b54639c73994c842cf2d58d337b Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:27:18 +0000 Subject: [PATCH 07/23] Update etc/kayobe/stackhpc.yml Co-authored-by: Matt Anson --- etc/kayobe/stackhpc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/stackhpc.yml b/etc/kayobe/stackhpc.yml index 83fdc235a..7afed4627 100644 --- a/etc/kayobe/stackhpc.yml +++ b/etc/kayobe/stackhpc.yml @@ -29,7 +29,7 @@ stackhpc_rocky_9_url_version: "{{ '9.' + stackhpc_pulp_repo_rocky_9_minor_versio # Pick build architecture for kolla and disk image builder # Choose between x86 or arm64 -stackhpc_cpu_arch: 'x86' +stackhpc_cpu_arch: 'x86_64' ############################################################################### # Debs From 77533ae7ab06f2d118bd746d14f999160b36f6fe Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:27:33 +0000 Subject: [PATCH 08/23] Update etc/kayobe/overcloud-dib.yml Co-authored-by: Matt Anson --- etc/kayobe/overcloud-dib.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/overcloud-dib.yml b/etc/kayobe/overcloud-dib.yml index 06e645665..1c9d975a9 100644 --- a/etc/kayobe/overcloud-dib.yml +++ b/etc/kayobe/overcloud-dib.yml @@ -71,7 +71,7 @@ overcloud_dib_git_elements_extra: elements_path: "elements" # Selects the architecture of the overcloud host image being built. -overcloud_dib_architechture: "{{ 'amd64' if stackhpc_cpu_arch == 'x86' else 'arm64' }}" +overcloud_dib_architechture: "{{ 'amd64' if stackhpc_cpu_arch == 'x86_64' else 'arm64' }}" # List of git repositories containing Diskimage Builder (DIB) elements. See # stackhpc.openstack.os_images role for usage. Default is a combination of From 7430f04496ff30030aa584e566472fe5b825740a Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:27:41 +0000 Subject: [PATCH 09/23] Update .github/workflows/overcloud-host-image-build.yml Co-authored-by: Matt Anson --- .github/workflows/overcloud-host-image-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/overcloud-host-image-build.yml b/.github/workflows/overcloud-host-image-build.yml index df66a7949..b890e4451 100644 --- a/.github/workflows/overcloud-host-image-build.yml +++ b/.github/workflows/overcloud-host-image-build.yml @@ -23,7 +23,7 @@ on: type: choice default: x86 options: - - x86 + - x86_64 - aarch64 secrets: KAYOBE_VAULT_PASSWORD: From 2ba2bf60f0dd0ad34f2795fae50e7a008b048f15 Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:27:53 +0000 Subject: [PATCH 10/23] Update .github/workflows/overcloud-host-image-build.yml Co-authored-by: Matt Anson --- .github/workflows/overcloud-host-image-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/overcloud-host-image-build.yml b/.github/workflows/overcloud-host-image-build.yml index b890e4451..5b423010b 100644 --- a/.github/workflows/overcloud-host-image-build.yml +++ b/.github/workflows/overcloud-host-image-build.yml @@ -21,7 +21,7 @@ on: cpu-platform-architecture: description: Select the image's build architecture type: choice - default: x86 + default: x86_64 options: - x86_64 - aarch64 From 263bdc4e3aa02eea323f60c722dab59f2b70e0ae Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Fri, 7 Feb 2025 14:26:02 +0000 Subject: [PATCH 11/23] Update .github/workflows/overcloud-host-image-build.yml Co-authored-by: Matt Crees --- .github/workflows/overcloud-host-image-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/overcloud-host-image-build.yml b/.github/workflows/overcloud-host-image-build.yml index 5b423010b..526b652ba 100644 --- a/.github/workflows/overcloud-host-image-build.yml +++ b/.github/workflows/overcloud-host-image-build.yml @@ -39,7 +39,7 @@ env: ANSIBLE_FORCE_COLOR: True KAYOBE_ENVIRONMENT: ci-builder KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }} - overcloud_dib_architechture: ${{ inputs.cpu-platform-architecture == 'x86' && 'amd64' || 'arm64' }} + overcloud_dib_architechture: ${{ inputs.cpu-platform-architecture == 'x86_64' && 'amd64' || 'arm64' }} jobs: runner-selection: uses: ./.github/workflows/runner-selector.yml From 3ce498c6a1739a6f04402c078f18a601e4278c65 Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:14:12 +0000 Subject: [PATCH 12/23] Update etc/kayobe/stackhpc.yml Co-authored-by: Matt Crees --- etc/kayobe/stackhpc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/stackhpc.yml b/etc/kayobe/stackhpc.yml index 7afed4627..2c4f947be 100644 --- a/etc/kayobe/stackhpc.yml +++ b/etc/kayobe/stackhpc.yml @@ -28,7 +28,7 @@ stackhpc_include_os_minor_version_in_repo_url: false stackhpc_rocky_9_url_version: "{{ '9.' + stackhpc_pulp_repo_rocky_9_minor_version | string if stackhpc_include_os_minor_version_in_repo_url | bool else '9' }}" # Pick build architecture for kolla and disk image builder -# Choose between x86 or arm64 +# Choose between x86_64 or arm64 stackhpc_cpu_arch: 'x86_64' ############################################################################### From 6e5748ab22777a3905eae5d32d69daa22538188f Mon Sep 17 00:00:00 2001 From: "max.bed4d" Date: Mon, 10 Feb 2025 10:35:57 +0000 Subject: [PATCH 13/23] Add image properties.cpu_arch --- etc/kayobe/stackhpc-overcloud-dib.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/kayobe/stackhpc-overcloud-dib.yml b/etc/kayobe/stackhpc-overcloud-dib.yml index 7418c3fb4..a9914660c 100644 --- a/etc/kayobe/stackhpc-overcloud-dib.yml +++ b/etc/kayobe/stackhpc-overcloud-dib.yml @@ -15,6 +15,9 @@ stackhpc_overcloud_dib_host_image: elements: "{{ stackhpc_overcloud_dib_elements }}" env: "{{ stackhpc_overcloud_dib_env_vars }}" packages: "{{ stackhpc_overcloud_dib_packages }}" + properties: + - cpu_arch: "{{ overcloud_dib_architechture }} " + # StackHPC overcloud DIB image name. stackhpc_overcloud_dib_name: "deployment_image" From 6b1dc8f8d3a3e2d4b922679b9fef264af558eb06 Mon Sep 17 00:00:00 2001 From: Massimiliano Favaro-Bedford <78351765+MaxBed4d@users.noreply.github.com> Date: Tue, 25 Feb 2025 09:28:23 +0000 Subject: [PATCH 14/23] Fix space formatting Co-authored-by: Alex-Welsh <112560678+Alex-Welsh@users.noreply.github.com> --- etc/kayobe/overcloud-dib.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/overcloud-dib.yml b/etc/kayobe/overcloud-dib.yml index 1c9d975a9..c18f4151d 100644 --- a/etc/kayobe/overcloud-dib.yml +++ b/etc/kayobe/overcloud-dib.yml @@ -71,7 +71,7 @@ overcloud_dib_git_elements_extra: elements_path: "elements" # Selects the architecture of the overcloud host image being built. -overcloud_dib_architechture: "{{ 'amd64' if stackhpc_cpu_arch == 'x86_64' else 'arm64' }}" +overcloud_dib_architechture: "{{ 'amd64' if stackhpc_cpu_arch == 'x86_64' else 'arm64' }}" # List of git repositories containing Diskimage Builder (DIB) elements. See # stackhpc.openstack.os_images role for usage. Default is a combination of From e23be5831d356c9f1d469838c19b933be08038f0 Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Wed, 19 Feb 2025 11:49:27 +0000 Subject: [PATCH 15/23] Docs: Magnum templates are tied to Azimuth release --- doc/source/configuration/magnum-capi.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/source/configuration/magnum-capi.rst b/doc/source/configuration/magnum-capi.rst index 016aaeabb..bc836ccc8 100644 --- a/doc/source/configuration/magnum-capi.rst +++ b/doc/source/configuration/magnum-capi.rst @@ -112,4 +112,6 @@ Magnum Cluster Templates The clusters deployed by the Cluster API driver make use of the Ubuntu Kubernetes images built in the `azimuth-images `_ repository and then use `capi-helm-charts `_ to provide the Helm charts which define the clusters based on these images. Between them, these two repositories have CI jobs that regularly build and test images and Helm charts for the latest Kubernetes versions. It is therefore important to update the cluster templates on each cloud regularly to make use of these new releases. +Note that these templates are a tested set against the specific CAPI management cluster release. As such, you should make sure to update your CAPI management cluster to the latest release before updating to the latest templates. + Magnum templates should be defined within an existing client-specific `openstack-config `_ repository. See the openstack-config `README `_ for more details. From 8028f93a7974a0035cbe6d39256536503c7947ea Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Fri, 14 Feb 2025 08:58:58 +0000 Subject: [PATCH 16/23] Bump Ironic to expand check_cipher_suite_errors Bumped Ironic tag to fix a bug where some cipher sute errors for SuperMicro hardware were not caught --- etc/kayobe/kolla-image-tags.yml | 6 ++++++ ...c-expand-check_cipher_suite_errors-c8915956be17a28c.yaml | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 releasenotes/notes/ironic-expand-check_cipher_suite_errors-c8915956be17a28c.yaml diff --git a/etc/kayobe/kolla-image-tags.yml b/etc/kayobe/kolla-image-tags.yml index 1816289c0..440a2f995 100644 --- a/etc/kayobe/kolla-image-tags.yml +++ b/etc/kayobe/kolla-image-tags.yml @@ -12,6 +12,12 @@ kolla_image_tags: horizon: rocky-9: 2024.1-rocky-9-20250203T171853 ubuntu-jammy: 2024.1-ubuntu-jammy-20250203T171853 + ironic: + rocky-9: 2024.1-rocky-9-20250213T110505 + ubuntu-jammy: 2024.1-ubuntu-jammy-20250213T110505 + ironic_dnsmasq: + rocky-9: 2024.1-rocky-9-20241218T141751 + ubuntu-jammy: 2024.1-ubuntu-jammy-20241218T141809 ironic_prometheus_exporter: rocky-9: 2024.1-rocky-9-20250124T081816 ubuntu-jammy: 2024.1-ubuntu-jammy-20250124T081816 diff --git a/releasenotes/notes/ironic-expand-check_cipher_suite_errors-c8915956be17a28c.yaml b/releasenotes/notes/ironic-expand-check_cipher_suite_errors-c8915956be17a28c.yaml new file mode 100644 index 000000000..d07efe471 --- /dev/null +++ b/releasenotes/notes/ironic-expand-check_cipher_suite_errors-c8915956be17a28c.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Bumped Ironic container image tag to fix a bug where some cipher suite + errors for SuperMicro hardware were not caught. See patch: + https://review.opendev.org/c/openstack/ironic/+/940957 From 9e1b3b819c979ae0cbbae2ac862eab53117b3309 Mon Sep 17 00:00:00 2001 From: Seunghun Lee <45145778+seunghun1ee@users.noreply.github.com> Date: Wed, 26 Feb 2025 17:50:23 +0000 Subject: [PATCH 17/23] Match job name of OS Capacity to what Azimuth expects (#1531) Match job name of OS Capacity to what Azimuth expects --- .../config/prometheus/prometheus.yml.d/70-oscapacity.yml | 2 +- ...job-name-for-azimuth-cloud-metrics-39cf81eebe16b879.yaml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-os-capacity-prometheus-job-name-for-azimuth-cloud-metrics-39cf81eebe16b879.yaml diff --git a/etc/kayobe/kolla/config/prometheus/prometheus.yml.d/70-oscapacity.yml b/etc/kayobe/kolla/config/prometheus/prometheus.yml.d/70-oscapacity.yml index afed8d915..f886734a4 100644 --- a/etc/kayobe/kolla/config/prometheus/prometheus.yml.d/70-oscapacity.yml +++ b/etc/kayobe/kolla/config/prometheus/prometheus.yml.d/70-oscapacity.yml @@ -3,7 +3,7 @@ {% if stackhpc_enable_os_capacity | bool %} {% raw %} scrape_configs: - - job_name: os-capacity + - job_name: os_capacity static_configs: - targets: - '{{ kolla_internal_fqdn | put_address_in_context('url') }}:9090' diff --git a/releasenotes/notes/fix-os-capacity-prometheus-job-name-for-azimuth-cloud-metrics-39cf81eebe16b879.yaml b/releasenotes/notes/fix-os-capacity-prometheus-job-name-for-azimuth-cloud-metrics-39cf81eebe16b879.yaml new file mode 100644 index 000000000..da274014f --- /dev/null +++ b/releasenotes/notes/fix-os-capacity-prometheus-job-name-for-azimuth-cloud-metrics-39cf81eebe16b879.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Changed the Prometheus job name of OS Capacity exporter to + ``os_capacity`` which is what Azimuth is expecting to have for + `cloud metrics dashboard `__. From e9b67273b493d595abdf9ff3fa54afdd95b70c9c Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Tue, 4 Feb 2025 10:25:16 +0000 Subject: [PATCH 18/23] Upgrade docs: reminder about custom policies --- doc/source/operations/upgrading-openstack.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/source/operations/upgrading-openstack.rst b/doc/source/operations/upgrading-openstack.rst index b04850961..ee91ae326 100644 --- a/doc/source/operations/upgrading-openstack.rst +++ b/doc/source/operations/upgrading-openstack.rst @@ -255,6 +255,11 @@ suggestions: * Check Grafana dashboards. * Update the deployment to use the latest |previous_release| images and configuration. +* If your customer has overriden any policies, check to see if they need + updating to align with new defaults. These will be written to files + ``kolla/config//policy.yaml``. Policy reference documentation can + generally be found in the documentation of each project. For example, Nova + policy: https://docs.openstack.org/nova/latest/configuration/policy.html RabbitMQ SLURP upgrade ---------------------- From a02c89e1c22e6289775920955594b58c09e0dcad Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Thu, 27 Feb 2025 11:05:08 +0000 Subject: [PATCH 19/23] Add information about using Amphora from SRT --- doc/source/operations/octavia.rst | 55 ++++++++++++++----- doc/source/operations/upgrading-openstack.rst | 2 +- 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/doc/source/operations/octavia.rst b/doc/source/operations/octavia.rst index f884d130f..c0d512a7f 100644 --- a/doc/source/operations/octavia.rst +++ b/doc/source/operations/octavia.rst @@ -4,21 +4,12 @@ Octavia .. _Amphora image: -Building and rotating amphora images -==================================== +Updating amphora images +======================= -StackHPC kayobe config contains utility playbooks to build and rotate the amphora images. -With your kayobe environment activated, you can build a new amphora image with: - -.. code-block:: console - - kayobe playbook run ${KAYOBE_CONFIG_PATH}/ansible/octavia-amphora-image-build.yml - -The resultant image is based on Ubuntu. By default the image will be built on the -seed, but it is possible to change the group in the ansible inventory using the -``amphora_builder_group`` variable. +StackHPC kayobe config contains utility playbooks to update and build the amphora images. -To rotate the image, first activate an openrc file containing the credentials +To update the image, first activate an openrc file containing the credentials for the octavia service account, e.g: .. code-block:: console @@ -31,16 +22,50 @@ You can then run the playbook to upload the image: kayobe playbook run ${KAYOBE_CONFIG_PATH}/ansible/octavia-amphora-image-register.yml -This will rename the old image by adding a timestamp suffix, before uploading a +By default, this will download Amphora image corresponds to OpenStack release from +StackHPC Release Train. +Then it will rename the old image by adding a timestamp suffix, before uploading a new image with the name, ``amphora-x64-haproxy``. Octavia should be configured to discover the image by tag using the ``amp_image_tag`` config option. The images are tagged with ``amphora`` to match the kolla-ansible default for ``octavia_amp_image_tag``. This prevents you needing to reconfigure octavia when building new images. -To rollback an image update, simply delete the old image. The next newest image with +To rollback an image update, simply delete the newest image. The next newest image with a tag matching ``amp_image_tag`` will be selected. +Building amphora images locally +=============================== + +You can also build Amphora images locally. +With your kayobe environment activated, you can build a new amphora image with: + +.. code-block:: console + + kayobe playbook run ${KAYOBE_CONFIG_PATH}/ansible/octavia-amphora-image-build.yml + +The resultant image is based on Ubuntu. By default the image will be built on the +seed, but it is possible to change the group in the ansible inventory using the +``amphora_builder_group`` variable. + +To register locally built image, set ``download_amphora_from_ark`` to ``false`` in +``stackhpc.yml`` + +.. code-block:: yaml + :caption: ``stackhpc.yml`` + + # Whether or not to download Octavia Amphora image from Ark. Default is true. + download_amphora_from_ark: false + +Then copy the image to your first controller host and run the image register playbook. +The path to the image in the controller needs to be set as an extra variable. +The default image path is ``/tmp/amphora-x64-haproxy.qcow2``. + +.. code-block:: console + + kayobe playbook run ${KAYOBE_CONFIG_PATH}/ansible/octavia-amphora-image-register.yml -e image_path="" + + Manually deleting broken load balancers ======================================= diff --git a/doc/source/operations/upgrading-openstack.rst b/doc/source/operations/upgrading-openstack.rst index ee91ae326..2bdb04128 100644 --- a/doc/source/operations/upgrading-openstack.rst +++ b/doc/source/operations/upgrading-openstack.rst @@ -1132,7 +1132,7 @@ scope of the upgrade: Updating the Octavia Amphora Image ---------------------------------- -If using Octavia with the Amphora driver, you should :ref:`build a new amphora +If using Octavia with the Amphora driver, you should :ref:`update the amphora image `. Testing From 197d09dd2192639c26debc655b0d7d5d3bf7ca07 Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Thu, 27 Feb 2025 11:01:34 +0000 Subject: [PATCH 20/23] Deploy OS capacity after overcloud service upgrade We only started enabling this by default in Caracal, so this needs to get deployed as part of an Antelope->Caracal upgrade. Otherwise, the haproxy and grafana config gets put in place without the exporter being present. --- doc/source/operations/upgrading-openstack.rst | 15 +++++++++++++++ .../post.d/deploy-os-capacity-exporter.yml | 1 + 2 files changed, 16 insertions(+) create mode 120000 etc/kayobe/hooks/overcloud-service-upgrade/post.d/deploy-os-capacity-exporter.yml diff --git a/doc/source/operations/upgrading-openstack.rst b/doc/source/operations/upgrading-openstack.rst index 2bdb04128..8ee8288c5 100644 --- a/doc/source/operations/upgrading-openstack.rst +++ b/doc/source/operations/upgrading-openstack.rst @@ -176,6 +176,21 @@ authentication will fail if this configuration is absent. See `upstream Keystone change `__ for more details. +OS Capacity exporter and dashboard enabled by default +----------------------------------------------------- + +The OS Capacity exporter will automatically be deployed after the upgrade. +During the upgrade, HAProxy config, Prometheus config and Grafana dashboards +will also be updated to use the exporter. If you want to disable this, change +the following in ``kayobe-config/etc/kayobe/stackhpc-monitoring.yml``: + +.. code-block:: yaml + + # Whether the OpenStack Capacity exporter is enabled. + # Enabling this flag will result in HAProxy configuration and Prometheus scrape + # targets being templated during deployment. + stackhpc_enable_os_capacity: false + Known issues ============ diff --git a/etc/kayobe/hooks/overcloud-service-upgrade/post.d/deploy-os-capacity-exporter.yml b/etc/kayobe/hooks/overcloud-service-upgrade/post.d/deploy-os-capacity-exporter.yml new file mode 120000 index 000000000..0cc70aace --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-upgrade/post.d/deploy-os-capacity-exporter.yml @@ -0,0 +1 @@ +../../../ansible/deploy-os-capacity-exporter.yml \ No newline at end of file From d26509ba41b4ceee4d4f5228f45dc8c00fd73186 Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Thu, 27 Feb 2025 12:07:42 +0000 Subject: [PATCH 21/23] Fix handler notify in fix-houston.yml The handler was changed when we fixed linting, but the notify wasn't updated. --- etc/kayobe/ansible/fix-houston.yml | 2 +- .../notes/fix-fix-houston-notify-165a7871bda48f68.yaml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-fix-houston-notify-165a7871bda48f68.yaml diff --git a/etc/kayobe/ansible/fix-houston.yml b/etc/kayobe/ansible/fix-houston.yml index 0333450e7..9dfdc924f 100644 --- a/etc/kayobe/ansible/fix-houston.yml +++ b/etc/kayobe/ansible/fix-houston.yml @@ -29,7 +29,7 @@ vars: interface_name: "{{ item }}" when: neutron_bridge_name | length > 0 - notify: reload systemd + notify: Reload systemd - name: Enable and start systemd service for -ovs network interface ansible.builtin.systemd: diff --git a/releasenotes/notes/fix-fix-houston-notify-165a7871bda48f68.yaml b/releasenotes/notes/fix-fix-houston-notify-165a7871bda48f68.yaml new file mode 100644 index 000000000..a7e12a0e2 --- /dev/null +++ b/releasenotes/notes/fix-fix-houston-notify-165a7871bda48f68.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes an issue where the fix-houston.yml playbook would fail to reload + systemd as the ``notify`` statement was incorrect. From c624344eab835e1845b982dbd4f50a2976f91629 Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Thu, 27 Feb 2025 09:37:53 +0000 Subject: [PATCH 22/23] Fix the Horizon Identity->Domains panel for admins Bumps the Horizon container image tag to bring in this patch: https://review.opendev.org/c/openstack/horizon/+/940461 --- etc/kayobe/kolla-image-tags.yml | 4 ++-- .../horizon-fix-multiple-domains-51086e9ba3d197b7.yaml | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/horizon-fix-multiple-domains-51086e9ba3d197b7.yaml diff --git a/etc/kayobe/kolla-image-tags.yml b/etc/kayobe/kolla-image-tags.yml index 440a2f995..f0e525cca 100644 --- a/etc/kayobe/kolla-image-tags.yml +++ b/etc/kayobe/kolla-image-tags.yml @@ -10,8 +10,8 @@ kolla_image_tags: rocky-9: 2024.1-rocky-9-20250213T103134 ubuntu-jammy: 2024.1-ubuntu-jammy-20250213T103134 horizon: - rocky-9: 2024.1-rocky-9-20250203T171853 - ubuntu-jammy: 2024.1-ubuntu-jammy-20250203T171853 + rocky-9: 2024.1-rocky-9-20250227T091118 + ubuntu-jammy: 2024.1-ubuntu-jammy-20250227T091118 ironic: rocky-9: 2024.1-rocky-9-20250213T110505 ubuntu-jammy: 2024.1-ubuntu-jammy-20250213T110505 diff --git a/releasenotes/notes/horizon-fix-multiple-domains-51086e9ba3d197b7.yaml b/releasenotes/notes/horizon-fix-multiple-domains-51086e9ba3d197b7.yaml new file mode 100644 index 000000000..123d02a1c --- /dev/null +++ b/releasenotes/notes/horizon-fix-multiple-domains-51086e9ba3d197b7.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Bumps the Horizon container image tag to fix the Identity->Domains panel + for admins when multiple Domains are in use. See patch: + https://review.opendev.org/c/openstack/horizon/+/940461 From 4be9f6c28c33988265633a33641091c8627a7946 Mon Sep 17 00:00:00 2001 From: Jake Hutchinson <39007539+assumptionsandg@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:37:58 +0000 Subject: [PATCH 23/23] Automate Kolla version updates (#1532) Automated Kolla dependencies updates --- .github/workflows/update-dependencies.yml | 87 +++++++++++++++++++ etc/kayobe/stackhpc.yml | 4 +- ...-dependency-workflow-6ff5520ee0ab8e15.yaml | 5 ++ requirements.txt | 2 +- 4 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/update-dependencies.yml create mode 100644 releasenotes/notes/kolla-dependency-workflow-6ff5520ee0ab8e15.yaml diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml new file mode 100644 index 000000000..2b9c8bda7 --- /dev/null +++ b/.github/workflows/update-dependencies.yml @@ -0,0 +1,87 @@ +name: Update dependencies + +on: + # Allow manual executions + workflow_dispatch: + # Run nightly + schedule: + - cron: '0 0 * * *' + +jobs: + propose_github_release_updates: + runs-on: ubuntu-22.04 + strategy: + matrix: + include: + - key: kolla + path: src/kayobe-config/etc/kayobe/stackhpc.yml + repository: stackhpc/kolla + search_regex: 'stackhpc_kolla_source_version\:.*$' + prefix: 'stackhpc_kolla_source_version\: ' + + - key: kolla-ansible + path: src/kayobe-config/etc/kayobe/stackhpc.yml + repository: stackhpc/kolla-ansible + search_regex: 'stackhpc_kolla_ansible_source_version\:.*$' + prefix: 'stackhpc_kolla_ansible_source_version\: ' + + - key: kayobe + path: src/kayobe-config/requirements.txt + repository: stackhpc/kayobe + search_regex: 'kayobe@stackhpc\/.*$' + prefix: 'kayobe@' + permissions: + contents: write + pull-requests: write + name: ${{ matrix.key }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: ${{ github.workspace }}/src/kayobe-config + + - name: Determine OpenStack release + id: openstack_release + run: | + BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' .gitreview) + echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT + working-directory: ${{ github.workspace }}/src/kayobe-config + + - name: Checkout the dependency repo + uses: actions/checkout@v4 + with: + repository: ${{ matrix.repository }} + ref: stackhpc/${{ steps.openstack_release.outputs.openstack_release }} + fetch-tags: true + path: ${{ github.workspace }}/src/${{ matrix.key }} + + - name: Get latest tag + id: latest_tag + run: | + TAG=$(git describe --tags --abbrev=0 --match stackhpc/\*) + echo latest_tag=${TAG} >> $GITHUB_OUTPUT + working-directory: ${{ github.workspace }}/src/${{ matrix.key }} + + - name: Update dependency key + run: | + TAG_OVERRIDE=$(echo $TAG | sed 's/\//\\\//g') + sed -i "s/$SEARCH/$PREFIX$TAG_OVERRIDE/g" $REQUIREMENTS + env: + PREFIX: ${{ matrix.prefix }} + TAG: ${{ steps.latest_tag.outputs.latest_tag }} + REQUIREMENTS: ${{ github.workspace }}/${{ matrix.path }} + SEARCH: ${{ matrix.search_regex }} + + - name: Propose changes via PR if required + uses: peter-evans/create-pull-request@v7 + with: + path: ${{ github.workspace }}/src/kayobe-config + commit-message: >- + Bump ${{ matrix.key }} to ${{ steps.latest_tag.outputs.latest_tag }} + branch: update-dependency/${{ matrix.key }} + delete-branch: true + title: >- + Bump ${{ matrix.key }} to ${{ steps.latest_tag.outputs.latest_tag }} + body: > + This PR was created automatically to update + ${{ matrix.key }} to ${{ steps.latest_tag.outputs.latest_tag }}. diff --git a/etc/kayobe/stackhpc.yml b/etc/kayobe/stackhpc.yml index 2c4f947be..2bd592828 100644 --- a/etc/kayobe/stackhpc.yml +++ b/etc/kayobe/stackhpc.yml @@ -157,11 +157,11 @@ stackhpc_repo_elrepo_9_version: "{{ stackhpc_repo_distribution }}" # Kolla source repository. stackhpc_kolla_source_url: "https://github.com/stackhpc/kolla" -stackhpc_kolla_source_version: "stackhpc/{{ openstack_release }}" +stackhpc_kolla_source_version: stackhpc/18.5.0.1 # Kolla Ansible source repository. stackhpc_kolla_ansible_source_url: "https://github.com/stackhpc/kolla-ansible" -stackhpc_kolla_ansible_source_version: "stackhpc/{{ openstack_release }}" +stackhpc_kolla_ansible_source_version: stackhpc/18.5.0.1 ############################################################################### # Container image registry diff --git a/releasenotes/notes/kolla-dependency-workflow-6ff5520ee0ab8e15.yaml b/releasenotes/notes/kolla-dependency-workflow-6ff5520ee0ab8e15.yaml new file mode 100644 index 000000000..acbe45077 --- /dev/null +++ b/releasenotes/notes/kolla-dependency-workflow-6ff5520ee0ab8e15.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Workflow to update Kolla dependencies (Kayobe, Kolla and Kolla-Ansible) + to the latest tag available in the StackHPC branch via CI. diff --git a/requirements.txt b/requirements.txt index aaf998164..cac612a76 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -kayobe@git+https://github.com/stackhpc/kayobe@stackhpc/2024.1 +kayobe@git+https://github.com/stackhpc/kayobe@stackhpc/16.5.0.1 ansible-modules-hashivault>=5.2.1 jmespath