diff --git a/.ansible-lint-ignore b/.ansible-lint-ignore index aa444047f..4f302a2de 100644 --- a/.ansible-lint-ignore +++ b/.ansible-lint-ignore @@ -5,3 +5,5 @@ etc/kayobe/ansible/vault-generate-internal-tls.yml fqcn[action-core] etc/kayobe/ansible/vault-generate-test-external-tls.yml fqcn[action-core] etc/kayobe/ansible/rabbitmq-reset.yml command-instead-of-module etc/kayobe/ansible/ubuntu-upgrade.yml syntax-check[missing-file] +etc/kayobe/ansible/check-kayobe-version.yml command-instead-of-module +etc/kayobe/ansible/check-kolla-ansible-version.yml command-instead-of-module diff --git a/.automation b/.automation index 88da3eb6b..8a24af6f8 160000 --- a/.automation +++ b/.automation @@ -1 +1 @@ -Subproject commit 88da3eb6b5022bad88db22506b737886bce796de +Subproject commit 8a24af6f8ba1447382804a2b3e30a16f5b40bace diff --git a/.github/workflows/multinode-inputs.py b/.github/workflows/multinode-inputs.py index 56f9327c2..930b4c776 100644 --- a/.github/workflows/multinode-inputs.py +++ b/.github/workflows/multinode-inputs.py @@ -36,7 +36,7 @@ class Scenario: OPENSTACK_RELEASES = [ OpenStackRelease("2023.1", "zed", [ROCKY_9, UBUNTU_JAMMY]), OpenStackRelease("2024.1", "2023.1", [ROCKY_9, UBUNTU_JAMMY]), - OpenStackRelease("master", "2024.1", [ROCKY_9, UBUNTU_NOBLE]), + OpenStackRelease("2025.1", "2024.1", [ROCKY_9, UBUNTU_NOBLE]), ] NEUTRON_PLUGINS = ["ovs", "ovn"] diff --git a/.github/workflows/runner-selector.yml b/.github/workflows/runner-selector.yml index 5c7907582..f825ec604 100644 --- a/.github/workflows/runner-selector.yml +++ b/.github/workflows/runner-selector.yml @@ -37,7 +37,7 @@ jobs: - name: Set output for container image build runner run: echo "Setting runner for ${{ inputs.runner_env }} -> ${{ vars.RUNS_ON_TARGET_CONTAINER_IMAGE_BUILDER }}" - + - id: container-image-build-runner run: echo "runner_name_container_image_build=${{ vars.RUNS_ON_TARGET_CONTAINER_IMAGE_BUILDER }}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/stackhpc-build-kayobe-image.yml b/.github/workflows/stackhpc-build-kayobe-image.yml index f6d150f5a..b61f1c10a 100644 --- a/.github/workflows/stackhpc-build-kayobe-image.yml +++ b/.github/workflows/stackhpc-build-kayobe-image.yml @@ -8,7 +8,7 @@ on: push: branches: # NOTE(upgrade): Reference only the current release branch here. - - stackhpc/master + - stackhpc/2025.1 workflow_call: inputs: diff --git a/.github/workflows/stackhpc-multinode.yml b/.github/workflows/stackhpc-multinode.yml index 25df2dc11..c9e8193da 100644 --- a/.github/workflows/stackhpc-multinode.yml +++ b/.github/workflows/stackhpc-multinode.yml @@ -69,7 +69,7 @@ jobs: break_duration: ${{ fromJSON(inputs.break_duration) }} ssh_key: ${{ inputs.ssh_key }} stackhpc_kayobe_config_version: ${{ github.ref_name }} - # NOTE(upgrade): Reference the PREVIOUS release here. - stackhpc_kayobe_config_previous_version: ${{ inputs.upgrade == 'major' && 'stackhpc/2024.1' || 'stackhpc/master' }} + # NOTE(upgrade): Reference the PREVIOUS and CURRENT releases here. + stackhpc_kayobe_config_previous_version: ${{ inputs.upgrade == 'major' && 'stackhpc/2024.1' || 'stackhpc/2025.1' }} terraform_kayobe_multinode_version: ${{ inputs.terraform_kayobe_multinode_version }} secrets: inherit diff --git a/.github/workflows/stackhpc-promote.yml b/.github/workflows/stackhpc-promote.yml index a8ad8a248..852462146 100644 --- a/.github/workflows/stackhpc-promote.yml +++ b/.github/workflows/stackhpc-promote.yml @@ -4,7 +4,7 @@ on: push: branches: # NOTE(upgrade): Reference only the current release branch here. - - stackhpc/master + - stackhpc/2025.1 jobs: promote: name: Trigger Pulp promotion workflows diff --git a/.github/workflows/stackhpc-pull-request.yml b/.github/workflows/stackhpc-pull-request.yml index 3a6625006..de6bbe7f0 100644 --- a/.github/workflows/stackhpc-pull-request.yml +++ b/.github/workflows/stackhpc-pull-request.yml @@ -109,100 +109,29 @@ jobs: # when the parent jobs completed successfully or were skipped. We pass an # 'if' argument to the called workflow to allow running it conditionally. - build-kayobe-image: - name: Build Kayobe Image - needs: - - check-changes - uses: ./.github/workflows/stackhpc-build-kayobe-image.yml - with: - if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }} - if: github.repository == 'stackhpc/stackhpc-kayobe-config' + # build-kayobe-image: + # name: Build Kayobe Image + # needs: + # - check-changes + # uses: ./.github/workflows/stackhpc-build-kayobe-image.yml + # with: + # if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }} + # if: github.repository == 'stackhpc/stackhpc-kayobe-config' - check-tags: - name: Check container image tags - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-check-tags.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - if: ${{ needs.check-changes.outputs.check-tags == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-ubuntu-noble-ovs: - name: aio (Ubuntu Noble OVS) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: ubuntu - os_release: noble - ssh_username: ubuntu - neutron_plugin: ovs - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-ubuntu-noble-ovn: - name: aio (Ubuntu Noble OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: ubuntu - os_release: noble - ssh_username: ubuntu - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-rocky-9-ovs: - name: aio (Rocky 9 OVS) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovs - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - all-in-one-rocky-9-ovn: - name: aio (Rocky 9 OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - - # Test two upgrade scenarios: Ubuntu Noble OVS and Rocky 9 OVN. - - # On hold until Noble support lands in stackhpc/2024.1 - # all-in-one-upgrade-ubuntu-noble-ovs: - # name: aio upgrade (Ubuntu Noble OVS) + # check-tags: + # name: Check container image tags + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-check-tags.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # if: ${{ needs.check-changes.outputs.check-tags == 'true' }} + # secrets: inherit + # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + + # all-in-one-ubuntu-noble-ovn: + # name: aio (Ubuntu Noble OVN) # needs: # - check-changes # - build-kayobe-image @@ -212,27 +141,99 @@ jobs: # os_distribution: ubuntu # os_release: noble # ssh_username: ubuntu + # neutron_plugin: ovn + # OS_CLOUD: openstack + # if: ${{ needs.check-changes.outputs.aio == 'true' }} + # secrets: inherit + # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + + # all-in-one-rocky-9-ovs: + # name: aio (Rocky 9 OVS) + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # os_distribution: rocky + # os_release: "9" + # ssh_username: cloud-user # neutron_plugin: ovs # OS_CLOUD: openstack # if: ${{ needs.check-changes.outputs.aio == 'true' }} + # secrets: inherit + # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + + # all-in-one-rocky-9-ovn: + # name: aio (Rocky 9 OVN) + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # os_distribution: rocky + # os_release: "9" + # ssh_username: cloud-user + # neutron_plugin: ovn + # OS_CLOUD: openstack + # if: ${{ needs.check-changes.outputs.aio == 'true' }} + # secrets: inherit + # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + + # # Test two upgrade scenarios: Ubuntu Noble OVS and Rocky 9 OVN. + + # # On hold until Noble support lands in stackhpc/2024.1 + # # all-in-one-upgrade-ubuntu-noble-ovs: + # # name: aio upgrade (Ubuntu Noble OVS) + # # needs: + # # - check-changes + # # - build-kayobe-image + # # uses: ./.github/workflows/stackhpc-all-in-one.yml + # # with: + # # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # # os_distribution: ubuntu + # # os_release: noble + # # ssh_username: ubuntu + # # neutron_plugin: ovs + # # OS_CLOUD: openstack + # # if: ${{ needs.check-changes.outputs.aio == 'true' }} + # # upgrade: true + # # secrets: inherit + # # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + + # all-in-one-upgrade-rocky-9-ovn: + # name: aio upgrade (Rocky 9 OVN) + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # os_distribution: rocky + # os_release: "9" + # ssh_username: cloud-user + # neutron_plugin: ovn + # OS_CLOUD: openstack + # if: ${{ needs.check-changes.outputs.aio == 'true' }} # upgrade: true # secrets: inherit # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - all-in-one-upgrade-rocky-9-ovn: - name: aio upgrade (Rocky 9 OVN) - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - os_distribution: rocky - os_release: "9" - ssh_username: cloud-user - neutron_plugin: ovn - OS_CLOUD: openstack - if: ${{ needs.check-changes.outputs.aio == 'true' }} - upgrade: true - secrets: inherit - if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + # all-in-one-upgrade-rocky-9-ovs: + # name: aio upgrade (Rocky 9 OVS) + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # os_distribution: rocky + # os_release: "9" + # ssh_username: cloud-user + # neutron_plugin: ovs + # OS_CLOUD: openstack + # if: ${{ needs.check-changes.outputs.aio == 'true' }} + # upgrade: true + # secrets: inherit + # if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} diff --git a/.github/workflows/stackhpc-update-kolla.yml b/.github/workflows/stackhpc-update-kolla.yml index 0f5d3e62e..fdffb6684 100644 --- a/.github/workflows/stackhpc-update-kolla.yml +++ b/.github/workflows/stackhpc-update-kolla.yml @@ -17,8 +17,8 @@ jobs: codename: Antelope - version: stackhpc/2024.1 codename: Caracal - - version: stackhpc/master - codename: master + - version: stackhpc/2025.1 + codename: Epoxy uses: ./.github/workflows/update-dependencies.yml with: openstack_version: ${{ matrix.version }} diff --git a/.gitreview b/.gitreview index 2990c2ef3..fc87ae85d 100644 --- a/.gitreview +++ b/.gitreview @@ -2,4 +2,4 @@ host=review.opendev.org port=29418 project=openstack/kayobe-config.git -defaultbranch=master +defaultbranch=stable/2025.1 diff --git a/.readthedocs.yaml b/.readthedocs.yaml index f4000bb4b..6cbc9d3e2 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -13,7 +13,7 @@ build: python: "3.12" jobs: post_checkout: - - git remote set-branches origin master stackhpc/master stackhpc/2024.1 stackhpc/2023.1 stackhpc/zed stackhpc/yoga stackhpc/xena stackhpc/wallaby + - git remote set-branches origin master stackhpc/master stackhpc/2025.1 stackhpc/2024.1 stackhpc/2023.1 stackhpc/zed stackhpc/yoga stackhpc/xena stackhpc/wallaby - git fetch --unshallow # Build documentation in the doc/source/ directory with Sphinx diff --git a/README.rst b/README.rst index 6984028e8..4e556ad12 100644 --- a/README.rst +++ b/README.rst @@ -2,11 +2,11 @@ StackHPC Kayobe Configuration ============================= -This repository provides a base Kayobe configuration for the Master release -of StackHPC OpenStack. +This repository provides a base Kayobe configuration for the 2025.1 Epoxy +release of StackHPC OpenStack. Documentation is hosted on `readthedocs.io -`__, +`__, and includes release notes. Kayobe diff --git a/doc/source/conf.py b/doc/source/conf.py index ea135eb81..aa1b082c4 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -29,7 +29,7 @@ # -- StackHPC Kayobe configuration -------------------------------------- # Variables to override -current_series = "master" +current_series = "2025.1" previous_series = "2024.1" branch = f"stackhpc/{current_series}" ceph_series = "squid" diff --git a/doc/source/contributor/environments/aufn-ceph.rst b/doc/source/contributor/environments/aufn-ceph.rst index 2aa357719..f96245bf2 100644 --- a/doc/source/contributor/environments/aufn-ceph.rst +++ b/doc/source/contributor/environments/aufn-ceph.rst @@ -9,7 +9,7 @@ This environment creates a Universe-from-nothing_-style deployment of Kayobe con .. warning:: This guide was written for the Yoga release and has not been validated for - Master. Proceed with caution. + 2025.1. Proceed with caution. Prerequisites ============= diff --git a/doc/source/contributor/environments/ci-aio.rst b/doc/source/contributor/environments/ci-aio.rst index 90ab9f2e5..ace880658 100644 --- a/doc/source/contributor/environments/ci-aio.rst +++ b/doc/source/contributor/environments/ci-aio.rst @@ -29,7 +29,7 @@ Download the setup script: .. parsed-literal:: - wget https://raw.githubusercontent.com/stackhpc/stackhpc-kayobe-config/stackhpc/master/etc/kayobe/environments/ci-aio/automated-setup.sh + wget https://raw.githubusercontent.com/stackhpc/stackhpc-kayobe-config/stackhpc/2025.1/etc/kayobe/environments/ci-aio/automated-setup.sh Change the permissions on the script: @@ -52,9 +52,9 @@ following options: * ``BASE_PATH`` (default: ``~``) - Directory to deploy from. The directory must exist before running the script. -* ``KAYOBE_BRANCH`` (default: ``stackhpc/master``) - The branch of Kayobe +* ``KAYOBE_BRANCH`` (default: ``stackhpc/2025.1``) - The branch of Kayobe source code to use. -* ``KAYOBE_CONFIG_BRANCH`` (default: ``stackhpc/master``) - The branch of +* ``KAYOBE_CONFIG_BRANCH`` (default: ``stackhpc/2025.1``) - The branch of ``stackhpc-kayobe-config`` to use. * ``KAYOBE_AIO_LVM`` (default: ``true``) - Whether the image uses LVM. * ``KAYOBE_CONFIG_EDIT_PAUSE`` (default: ``false``) - Option to pause diff --git a/doc/source/contributor/environments/ci-multinode.rst b/doc/source/contributor/environments/ci-multinode.rst index 1c3b4a278..9041ea66e 100644 --- a/doc/source/contributor/environments/ci-multinode.rst +++ b/doc/source/contributor/environments/ci-multinode.rst @@ -5,7 +5,7 @@ Multinode Test Environment .. warning:: This guide was written for the Yoga release and has not been validated for - Master. Proceed with caution. + 2025.1. Proceed with caution. The ``ci-multinode`` environment provides a Kayobe configuration for multi-node clouds to be used for test and development purposes. It is designed to be used diff --git a/doc/source/contributor/package-updates.rst b/doc/source/contributor/package-updates.rst index e586641ac..8c46a1420 100644 --- a/doc/source/contributor/package-updates.rst +++ b/doc/source/contributor/package-updates.rst @@ -7,13 +7,13 @@ This section describes the Release Train process of creating new package reposit Preparations ============ -1. Before building images, you should check for any outstanding PRs into the earliest supported release. Below are the links for the Master branches. +1. Before building images, you should check for any outstanding PRs into the earliest supported release. Below are the links for the 2025.1 branches. - kayobe-config: https://github.com/stackhpc/stackhpc-kayobe-config/pulls?q=is%3Apr+is%3Aopen+base%3Astackhpc%2Fmaster + kayobe-config: https://github.com/stackhpc/stackhpc-kayobe-config/pulls?q=is%3Apr+is%3Aopen+base%3Astackhpc%2F2025.1+ - kolla: https://github.com/stackhpc/kolla/pulls?q=is%3Apr+is%3Aopen+base%3Astackhpc%2Fmaster + kolla: https://github.com/stackhpc/kolla/pulls?q=is%3Apr+is%3Aopen+base%3Astackhpc%2F2025.1+ - kolla-ansible: https://github.com/stackhpc/kolla-ansible/pulls?q=is%3Apr+is%3Aopen+base%3Astackhpc%2Fmaster + kolla-ansible: https://github.com/stackhpc/kolla-ansible/pulls?q=is%3Apr+is%3Aopen+base%3Astackhpc%2F2025.1+ You should also check any referenced source trees in etc/kayobe/kolla.yml. @@ -165,7 +165,7 @@ Upgrading OpenStack to the next release in a multinode environment .. warning:: This guide was written for the Wallaby release and has not been validated - for master. Proceed with caution. + for 2025.1. Proceed with caution. As this is not a full production system, only a reduced number of steps need to be followed to upgrade to a new release. Below describes these steps, with ``stackhpc/wallaby`` as the starting branch: diff --git a/doc/source/contributor/testing-ci-automation.rst b/doc/source/contributor/testing-ci-automation.rst index a88d2eac7..6fc1be3f7 100644 --- a/doc/source/contributor/testing-ci-automation.rst +++ b/doc/source/contributor/testing-ci-automation.rst @@ -113,7 +113,7 @@ job. The workflow performs the following high-level steps: #. Deploy a VM on an OpenStack cloud using the `aio - `_ + `_ Terraform configuration. #. Deploy OpenStack in the VM using Kayobe and the :doc:`ci-aio ` environment. If this is an upgrade job, the previous diff --git a/doc/source/operations/customising-horizon.rst b/doc/source/operations/customising-horizon.rst index e86dd62f2..97c6a8490 100644 --- a/doc/source/operations/customising-horizon.rst +++ b/doc/source/operations/customising-horizon.rst @@ -13,7 +13,7 @@ Creating a custom Horizon theme A simple custom theme for Horizon can be implemented as small modifications of an existing theme, such as the `Default -`__ +`__ one. A theme contains at least two files: ``static/_styles.scss``, which can be empty, and diff --git a/doc/source/operations/upgrading-openstack.rst b/doc/source/operations/upgrading-openstack.rst index 891829e05..0fd8639be 100644 --- a/doc/source/operations/upgrading-openstack.rst +++ b/doc/source/operations/upgrading-openstack.rst @@ -114,7 +114,7 @@ Known issues Security baseline ================= -As part of the Master release we are looking to improve the security +As part of the 2025.1 Epoxy release we are looking to improve the security baseline of StackHPC OpenStack deployments. If any of the following have not been done, they should be completed before the upgrade begins. diff --git a/doc/source/release-notes.rst b/doc/source/release-notes.rst index ebafdcb6d..cec010e00 100644 --- a/doc/source/release-notes.rst +++ b/doc/source/release-notes.rst @@ -1,6 +1,6 @@ -=========================== -Master Series Release Notes -=========================== +================================= +2025.1 Epoxy Series Release Notes +================================= .. release-notes:: - :branch: stackhpc/master + :branch: stackhpc/2025.1 diff --git a/doc/source/usage.rst b/doc/source/usage.rst index dc2a22a81..568e483e9 100644 --- a/doc/source/usage.rst +++ b/doc/source/usage.rst @@ -16,7 +16,7 @@ when used with Kayobe's :kayobe-doc:`multiple environments ` feature. This configuration should be consumed using the `StackHPC Kayobe fork -`__, which includes +`__, which includes backported support for Ansible collections. New deployments diff --git a/etc/kayobe/ansible/check-kayobe-version.yml b/etc/kayobe/ansible/check-kayobe-version.yml new file mode 100644 index 000000000..cc00b6aed --- /dev/null +++ b/etc/kayobe/ansible/check-kayobe-version.yml @@ -0,0 +1,61 @@ +--- +- name: Check Kayobe version + tags: kayobe-version-check + hosts: localhost + gather_facts: false + vars: + requirements_path: "{{ kayobe_config_path }}/../../requirements.txt" + tasks: + - name: Check version + when: stackhpc_enable_kayobe_check + block: + - name: Get package info + community.general.pip_package_info: + register: packages + + - name: Check if pip is version 24.0 or newer + ansible.builtin.assert: + that: "{{ packages.packages.pip.pip[0].version is version('24.0', '>=') }}" + fail_msg: | + Pip must be 24.0 or newer to run this check. Upgrade pip by running + pip install -U pip and reinstall Kayobe by running: + pip install --force-reinstall -r {{ requirements_path }} + + - name: Get installed Kayobe commit + ansible.builtin.shell: + cmd: set -o pipefail && pip freeze | grep kayobe | cut -d @ -f 3 + executable: /usr/bin/bash + register: kayobe_git_commit + failed_when: kayobe_git_commit.stdout == "" + + - name: Clone Kayobe + ansible.builtin.git: + repo: https://github.com/stackhpc/kayobe.git + dest: /tmp/kayobe-git + version: stackhpc/{{ openstack_release }} + + - name: Get tag from Kayobe commit + ansible.builtin.command: + cmd: git describe --tags {{ kayobe_git_commit.stdout }} + chdir: /tmp/kayobe-git + register: kayobe_current_version + + - name: Get latest Kayobe version + ansible.builtin.shell: + cmd: set -o pipefail && grep -o kayobe@stackhpc\/.*$ {{ requirements_path }} | cut -d @ -f 2 + executable: /usr/bin/bash + register: kayobe_latest_version + + - name: Check installed Kayobe version is the latest + ansible.builtin.assert: + that: "kayobe_latest_version.stdout in kayobe_current_version.stdout" + fail_msg: | + Kayobe must use the expected version before continuing. + + Current Kayobe version: {{ kayobe_current_version.stdout }} + Expected Kayobe version: {{ kayobe_latest_version.stdout }} + + Recreate the Kayobe environment, or install the expected version + by running: pip install --force-reinstall -r {{ requirements_path }} + success_msg: | + Kayobe running at version: {{ kayobe_current_version.stdout }} diff --git a/etc/kayobe/ansible/check-kolla-ansible-version.yml b/etc/kayobe/ansible/check-kolla-ansible-version.yml new file mode 100644 index 000000000..183a175dd --- /dev/null +++ b/etc/kayobe/ansible/check-kolla-ansible-version.yml @@ -0,0 +1,27 @@ +--- +- name: Check Kolla-Ansible version + tags: kolla-ansible-version-check + hosts: localhost + gather_facts: false + tasks: + - name: Check version + when: stackhpc_enable_kolla_ansible_check + block: + - name: Get current Kolla-Ansible tag + ansible.builtin.command: + cmd: git describe --tags + chdir: "{{ lookup('ansible.builtin.env', 'KOLLA_SOURCE_PATH') }}" + register: kolla_ansible_current_version + + - name: Check installed Kolla-Ansible version is the expected version + ansible.builtin.assert: + that: "stackhpc_kolla_ansible_source_version in kolla_ansible_current_version.stdout" + fail_msg: | + Kolla-Ansible must use the expected version before continuing. + + Current Kolla-Ansible version: {{ kolla_ansible_current_version.stdout }} + Expected Kolla-Ansible version: {{ stackhpc_kolla_ansible_source_version }} + + Upgrade Kolla-Ansible by running: kayobe control host upgrade + success_msg: | + Kolla-Ansible running at version: {{ kolla_ansible_current_version.stdout }} diff --git a/etc/kayobe/ansible/deploy-radosgw-usage-exporter.yml b/etc/kayobe/ansible/deploy-radosgw-usage-exporter.yml index c70e54194..e7c0cf254 100644 --- a/etc/kayobe/ansible/deploy-radosgw-usage-exporter.yml +++ b/etc/kayobe/ansible/deploy-radosgw-usage-exporter.yml @@ -107,7 +107,7 @@ - name: Ensure radosgw_usage_exporter container is running community.docker.docker_container: name: radosgw_usage_exporter - image: ghcr.io/stackhpc/radosgw_usage_exporter:v0.1.1 + image: ghcr.io/stackhpc/radosgw_usage_exporter:v0.1.3 network_mode: host env: RADOSGW_SERVER: "{{ radosgw_server }}" diff --git a/etc/kayobe/environments/aufn-ceph/a-universe-from-nothing.sh b/etc/kayobe/environments/aufn-ceph/a-universe-from-nothing.sh index 86a294bd9..4b35d3cf8 100755 --- a/etc/kayobe/environments/aufn-ceph/a-universe-from-nothing.sh +++ b/etc/kayobe/environments/aufn-ceph/a-universe-from-nothing.sh @@ -10,8 +10,8 @@ set -eu BASE_PATH=~ -KAYOBE_BRANCH=stackhpc/master -KAYOBE_CONFIG_BRANCH=stackhpc/master +KAYOBE_BRANCH=stackhpc/2025.1 +KAYOBE_CONFIG_BRANCH=stackhpc/2025.1 KAYOBE_ENVIRONMENT=aufn-ceph # Install git and tmux. @@ -50,7 +50,7 @@ if [[ ! -d kayobe ]]; then python3 -m venv kayobe fi # NOTE: Virtualenv's activate and deactivate scripts reference an -# unbound variable. +# unbound variable. set +u source kayobe/bin/activate set -u @@ -121,7 +121,7 @@ deactivate set -u $KAYOBE_CONFIG_PATH/environments/$KAYOBE_ENVIRONMENT/configure-openstack.sh $BASE_PATH -# Create a test vm +# Create a test vm VENV_DIR=$BASE_PATH/venvs/openstack if [[ ! -d $VENV_DIR ]]; then python3 -m venv $VENV_DIR diff --git a/etc/kayobe/environments/aufn-ceph/configure-openstack.sh b/etc/kayobe/environments/aufn-ceph/configure-openstack.sh index 1c7433e8a..3bac0a351 100755 --- a/etc/kayobe/environments/aufn-ceph/configure-openstack.sh +++ b/etc/kayobe/environments/aufn-ceph/configure-openstack.sh @@ -6,13 +6,13 @@ cd $BASE_PATH/src/ [[ -d openstack-config ]] || git clone https://github.com/stackhpc/openstack-config-multinode.git openstack-config cd openstack-config if [[ ! -d $VENV_DIR ]]; then - # Using virtualenv causes a strange bug with python3.6 where + # Using virtualenv causes a strange bug with python3.6 where # nested virtual env creation leads to envs without pip... # virtualenv $VENV_DIR python3 -m venv $VENV_DIR fi -# NOTE: Virtualenv's activate and deactivate scripts reference an unbound variable. +# NOTE: Virtualenv's activate and deactivate scripts reference an unbound variable. set +u source $VENV_DIR/bin/activate set -u diff --git a/etc/kayobe/environments/ci-aio/automated-setup.sh b/etc/kayobe/environments/ci-aio/automated-setup.sh index fe7dfae7f..77167803a 100644 --- a/etc/kayobe/environments/ci-aio/automated-setup.sh +++ b/etc/kayobe/environments/ci-aio/automated-setup.sh @@ -3,8 +3,8 @@ set -eux BASE_PATH=~ -KAYOBE_BRANCH=stackhpc/master -KAYOBE_CONFIG_BRANCH=stackhpc/master +KAYOBE_BRANCH=stackhpc/2025.1 +KAYOBE_CONFIG_BRANCH=stackhpc/2025.1 KAYOBE_AIO_LVM=true KAYOBE_CONFIG_EDIT_PAUSE=false AIO_RUN_TEMPEST=false diff --git a/etc/kayobe/environments/ci-multinode/kolla/config/keepalived/keepalived.conf b/etc/kayobe/environments/ci-multinode/kolla/config/keepalived/keepalived.conf index 7a18dbbcf..71b1682cb 100644 --- a/etc/kayobe/environments/ci-multinode/kolla/config/keepalived/keepalived.conf +++ b/etc/kayobe/environments/ci-multinode/kolla/config/keepalived/keepalived.conf @@ -12,7 +12,7 @@ vrrp_instance kolla_internal_vip_{{ keepalived_virtual_router_id }} { interface {{ api_interface }} virtual_router_id {{ keepalived_virtual_router_id }} priority {{ groups['loadbalancer'].index(inventory_hostname) + 1 }} - advert_int 3 # Increase advert interval from 1 to 3 as there was a lot of jumping amongst controllers on the internal network + advert_int 3 # Increase advert interval from 1 to 3 as there was a lot of jumping amongst controllers on the internal network {% if keepalived_traffic_mode == 'unicast' %} unicast_src_ip {{ api_interface_address }} {% if groups['loadbalancer'] | length > 1 %} diff --git a/etc/kayobe/hooks/control-host-bootstrap/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/control-host-bootstrap/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/control-host-bootstrap/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/control-host-upgrade/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/control-host-upgrade/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/control-host-upgrade/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/infra-vm-host-configure/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/infra-vm-host-configure/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/infra-vm-host-configure/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/infra-vm-host-configure/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/infra-vm-host-configure/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/infra-vm-host-configure/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/infra-vm-service-deploy/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/infra-vm-service-deploy/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/infra-vm-service-deploy/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/infra-vm-service-deploy/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/infra-vm-service-deploy/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/infra-vm-service-deploy/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-host-configure/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/overcloud-host-configure/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-host-configure/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-host-configure/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/overcloud-host-configure/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-host-configure/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-host-upgrade/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/overcloud-host-upgrade/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-host-upgrade/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-host-upgrade/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/overcloud-host-upgrade/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-host-upgrade/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-service-deploy/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/overcloud-service-deploy/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-deploy/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-service-deploy/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/overcloud-service-deploy/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-deploy/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-service-reconfigure/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/overcloud-service-reconfigure/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-reconfigure/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-service-reconfigure/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/overcloud-service-reconfigure/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-reconfigure/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-service-upgrade/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/overcloud-service-upgrade/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-upgrade/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/overcloud-service-upgrade/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/overcloud-service-upgrade/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/overcloud-service-upgrade/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/seed-host-configure/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/seed-host-configure/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/seed-host-configure/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/seed-host-configure/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/seed-host-configure/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/seed-host-configure/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/seed-hypervisor-host-configure/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/seed-hypervisor-host-configure/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/seed-hypervisor-host-configure/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/seed-hypervisor-host-configure/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/seed-hypervisor-host-configure/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/seed-hypervisor-host-configure/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/seed-service-deploy/pre.d/check-kayobe-version.yml b/etc/kayobe/hooks/seed-service-deploy/pre.d/check-kayobe-version.yml new file mode 120000 index 000000000..bec8ed4c6 --- /dev/null +++ b/etc/kayobe/hooks/seed-service-deploy/pre.d/check-kayobe-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kayobe-version.yml \ No newline at end of file diff --git a/etc/kayobe/hooks/seed-service-deploy/pre.d/check-kolla-ansible-version.yml b/etc/kayobe/hooks/seed-service-deploy/pre.d/check-kolla-ansible-version.yml new file mode 120000 index 000000000..0f7651f53 --- /dev/null +++ b/etc/kayobe/hooks/seed-service-deploy/pre.d/check-kolla-ansible-version.yml @@ -0,0 +1 @@ +../../../ansible/check-kolla-ansible-version.yml \ No newline at end of file diff --git a/etc/kayobe/inventory/group_vars/overcloud/stackhpc-repos b/etc/kayobe/inventory/group_vars/overcloud/stackhpc-repos index 442a9e068..22fa09487 100644 --- a/etc/kayobe/inventory/group_vars/overcloud/stackhpc-repos +++ b/etc/kayobe/inventory/group_vars/overcloud/stackhpc-repos @@ -1,6 +1,6 @@ --- # Only use local pulp mirrors for overcloud hosts -# to avoid situations where the seed-hypervisor +# to avoid situations where the seed-hypervisor # tries to use a local pulp repo on the seed VM # before the seed vm has been provisioned stackhpc_repos_enabled: true diff --git a/etc/kayobe/kolla-image-tags.yml b/etc/kayobe/kolla-image-tags.yml index 7bec69128..e33204c6e 100644 --- a/etc/kayobe/kolla-image-tags.yml +++ b/etc/kayobe/kolla-image-tags.yml @@ -2,7 +2,7 @@ # Dict of Kolla image tags to deploy for each service. # Each key is the tag variable prefix name, and the value is another dict, # where the key is the OS distro and the value is the tag to deploy. -# TODO: Build real master images +# TODO: Rebuild epoxy images kolla_image_tags: openstack: rocky-9: master-rocky-9-20250213T114650 diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index 7491ee242..1a9386d5c 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -138,6 +138,10 @@ kolla_sources: type: git location: https://github.com/stackhpc/networking-generic-switch.git reference: stackhpc/{{ openstack_release }} + # FIXME: check whether we want to build from upstream master of a downstream + # 2025.1 branch e.g. + # location: https://github.com/stackhpc/networking-mlnx.git + # reference: stackhpc/{{ openstack_release }} neutron-server-plugin-networking-mlnx: type: git location: https://opendev.org/x/networking-mlnx @@ -146,6 +150,12 @@ kolla_sources: type: git location: https://opendev.org/x/networking-mlnx reference: master + # FIXME: Check whether we want to build from downstream stackhpc/master, + # stackhpc/2025.1, or upstream epoxy or master + blazar-base: + type: git + location: https://github.com/stackhpc/blazar.git + reference: stackhpc/master ############################################################################### # Kolla image build configuration. diff --git a/etc/kayobe/kolla/config/prometheus/prometheus-alertmanager.yml.example b/etc/kayobe/kolla/config/prometheus/prometheus-alertmanager.yml.example index 4a3501474..0548a8286 100644 --- a/etc/kayobe/kolla/config/prometheus/prometheus-alertmanager.yml.example +++ b/etc/kayobe/kolla/config/prometheus/prometheus-alertmanager.yml.example @@ -16,7 +16,7 @@ route: - severity=~"critical|alert" receiver: 'slack-critical-notifications' - + receivers: - name: 'slack-notifications' slack_configs: @@ -24,7 +24,7 @@ receivers: actions: - type: button text: 'Silence 🔕' - url: {{ '{% raw %}' }}{% raw %} '{{ template "__alert_silence_link" . }}' + url: {{ '{% raw %}' }}{% raw %} '{{ template "__alert_silence_link" . }}' {% endraw %}{{ '{% endraw %}' }} send_resolved: true http_config: @@ -35,7 +35,7 @@ receivers: actions: - type: button text: 'Silence 🔕' - url: {{ '{% raw %}' }}{% raw %} '{{ template "__alert_silence_link" . }}' + url: {{ '{% raw %}' }}{% raw %} '{{ template "__alert_silence_link" . }}' {% endraw %}{{ '{% endraw %}' }} send_resolved: true http_config: diff --git a/etc/kayobe/openstack.yml b/etc/kayobe/openstack.yml index d1aa18adf..03dac0cf0 100644 --- a/etc/kayobe/openstack.yml +++ b/etc/kayobe/openstack.yml @@ -2,14 +2,14 @@ ############################################################################### # OpenStack release configuration. -# Name of the current OpenStack release. Default is "master". +# Name of the current OpenStack release. Default is "2025.1". #openstack_release: # Codename of the current OpenStack release. # NOTE(upgrade): Update to current release codename. openstack_release_codename: "epoxy" -# Name of the current OpenStack branch. Default is "master". +# Name of the current OpenStack branch. Default is "stable/2025.1". #openstack_branch: ############################################################################### diff --git a/etc/kayobe/pulp-host-image-versions.yml b/etc/kayobe/pulp-host-image-versions.yml index d88793c17..2d3dda5d2 100644 --- a/etc/kayobe/pulp-host-image-versions.yml +++ b/etc/kayobe/pulp-host-image-versions.yml @@ -1,5 +1,6 @@ --- # Overcloud host image versioning tags # These images must be in SMS, since they are used by our AIO CI runners +#TODO: build epoxy images stackhpc_rocky_9_overcloud_host_image_version: "master-20250213T092714" stackhpc_ubuntu_noble_overcloud_host_image_version: "master-20250213T092714" diff --git a/etc/kayobe/pulp.yml b/etc/kayobe/pulp.yml index f29bf4a4b..42604100f 100644 --- a/etc/kayobe/pulp.yml +++ b/etc/kayobe/pulp.yml @@ -678,6 +678,14 @@ stackhpc_pulp_repository_container_repos_openbao: include_tags: "{{ overcloud_vault_docker_tag }}" required: "{{ stackhpc_sync_openbao_images | bool }}" +# List of OpenBao container image distributions. +stackhpc_pulp_distribution_container_openbao: + - name: openbao + repository: openbao/openbao + base_path: openbao/openbao + state: present + required: "{{ stackhpc_sync_openbao_images | bool }}" + # List of extra container image repositories. stackhpc_pulp_repository_container_repos_extra: [] diff --git a/etc/kayobe/stackhpc.yml b/etc/kayobe/stackhpc.yml index 84358b9fb..ac8f1acb2 100644 --- a/etc/kayobe/stackhpc.yml +++ b/etc/kayobe/stackhpc.yml @@ -136,22 +136,16 @@ stackhpc_repo_epel_9_version: "{{ stackhpc_repo_distribution }}" stackhpc_repo_elrepo_9_url: "{{ stackhpc_repo_mirror_url }}/pulp/content/elrepo/elrepo/el9/x86_64/{{ stackhpc_repo_elrepo_9_version }}" stackhpc_repo_elrepo_9_version: "{{ stackhpc_repo_distribution }}" -# DeLorean Master testing -stackhpc_repo_delorian_master_testing_url: "https://trunk.rdoproject.org/centos9-master/deps/latest/" - -# DeLorean Master build deps -stackhpc_repo_delorian_master_build_deps_url: "https://trunk.rdoproject.org/centos9-master/build-deps/latest/" - ############################################################################### # Sources # Kolla source repository. stackhpc_kolla_source_url: "https://github.com/stackhpc/kolla" -stackhpc_kolla_source_version: stackhpc/{{ openstack_release }} +stackhpc_kolla_source_version: stackhpc/20.0.0.3 # 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/20.0.0.3 ############################################################################### # Container image registry @@ -169,6 +163,14 @@ stackhpc_docker_registry_password: "{{ pulp_password }}" # Whether or not to run CIS benchmark hardening playbooks. Default is false. #stackhpc_enable_cis_benchmark_hardening_hook: +# Whether or not to check the installed Kayobe version when running Kayobe commands. +# Default is true. +stackhpc_enable_kayobe_check: true + +# Whether or not to check the installed Kolla-Ansible version when running Kayobe commands. +# Default is true. +stackhpc_enable_kolla_ansible_check: true + ############################################################################### # Octavia Amphora image diff --git a/releasenotes/notes/add-caso-f36b98453be10169.yaml b/releasenotes/notes/add-caso-f36b98453be10169.yaml index fec9b8286..ee71bcf1f 100644 --- a/releasenotes/notes/add-caso-f36b98453be10169.yaml +++ b/releasenotes/notes/add-caso-f36b98453be10169.yaml @@ -5,4 +5,4 @@ that supports Cloud Accounting Usage Records. For more information, see the `upstream docs `__. Note that this container does not exist in upstream Kolla and is maintained - downstream by StackHPC. + downstream by StackHPC. diff --git a/releasenotes/notes/add-rekey-playbook-0065c5057b1639f8.yaml b/releasenotes/notes/add-rekey-playbook-0065c5057b1639f8.yaml index 5e75a51ad..d1edf25a4 100644 --- a/releasenotes/notes/add-rekey-playbook-0065c5057b1639f8.yaml +++ b/releasenotes/notes/add-rekey-playbook-0065c5057b1639f8.yaml @@ -1,5 +1,5 @@ --- features: - | - Added the ``rekey-hosts.yml`` playbook to automatically rotate the SSH + Added the ``rekey-hosts.yml`` playbook to automatically rotate the SSH keys on all hosts. diff --git a/releasenotes/notes/add-rocky-9-packages-43074cb3367171a5.yaml b/releasenotes/notes/add-rocky-9-packages-43074cb3367171a5.yaml index a202b9ecd..f9c6bd534 100644 --- a/releasenotes/notes/add-rocky-9-packages-43074cb3367171a5.yaml +++ b/releasenotes/notes/add-rocky-9-packages-43074cb3367171a5.yaml @@ -3,5 +3,5 @@ features: - | Add the package repository configuration required for Rocky Linux 9 support. - + Add CI for Rocky 9 hosts. diff --git a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml index a3ebacc1f..cabf7a891 100644 --- a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml +++ b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml @@ -4,4 +4,4 @@ features: Adds support for using a VMs as compute and controller nodes in the ``ci-multinode`` environment by dynamically setting the MTU of the networks in networks.yml and removing the static definition of the network - interfaces for the compute and controller groups. + interfaces for the compute and controller groups. diff --git a/releasenotes/notes/bump-rocky-9-90412343a29bc45b.yaml b/releasenotes/notes/bump-rocky-9-90412343a29bc45b.yaml index 165b40751..cd8bbb59c 100644 --- a/releasenotes/notes/bump-rocky-9-90412343a29bc45b.yaml +++ b/releasenotes/notes/bump-rocky-9-90412343a29bc45b.yaml @@ -1,4 +1,4 @@ --- upgrade: - | - Bumped rocky 9 package versions due to missing snapshot + Bumped rocky 9 package versions due to missing snapshot diff --git a/releasenotes/notes/bumps-redfish-exporter-to-v2-11032fb9dde36283.yaml b/releasenotes/notes/bumps-redfish-exporter-to-v2-11032fb9dde36283.yaml index ddf1d58eb..6ef30e11a 100644 --- a/releasenotes/notes/bumps-redfish-exporter-to-v2-11032fb9dde36283.yaml +++ b/releasenotes/notes/bumps-redfish-exporter-to-v2-11032fb9dde36283.yaml @@ -10,6 +10,6 @@ features: fixes: - Fixes various issues with the redfish exporter dashboard. upgrade: - - | + - | Increases default ``os_capacity_scrape_interval`` to ``5m``. If you already customise this please move to the new ``stackhpc_os_capacity_scrape_interval`` variable. diff --git a/releasenotes/notes/disable-heat-03f3ac52ac610223.yaml b/releasenotes/notes/disable-heat-03f3ac52ac610223.yaml index b5c557161..9a5e8eda5 100644 --- a/releasenotes/notes/disable-heat-03f3ac52ac610223.yaml +++ b/releasenotes/notes/disable-heat-03f3ac52ac610223.yaml @@ -1,7 +1,7 @@ --- features: - | - The Heat OpenStack service is now disabled by default. + The Heat OpenStack service is now disabled by default. upgrade: - | The Heat service is now disabled by default. This behaviour can be diff --git a/releasenotes/notes/docker-bump-dc4e85668ee69a21.yaml b/releasenotes/notes/docker-bump-dc4e85668ee69a21.yaml index 3563d6d3a..d5c6c3e21 100644 --- a/releasenotes/notes/docker-bump-dc4e85668ee69a21.yaml +++ b/releasenotes/notes/docker-bump-dc4e85668ee69a21.yaml @@ -8,4 +8,4 @@ fixes: - | Separated out repos for Docker CE for Ubuntu Jammy/Focal. This fixes a Pulp sync issue where two "identical" repository versions existed with different - checksums. + checksums. diff --git a/releasenotes/notes/feature-smartmon-65cacfe893f0eb47.yaml b/releasenotes/notes/feature-smartmon-65cacfe893f0eb47.yaml index 94dc25978..23b9e5bc8 100644 --- a/releasenotes/notes/feature-smartmon-65cacfe893f0eb47.yaml +++ b/releasenotes/notes/feature-smartmon-65cacfe893f0eb47.yaml @@ -4,5 +4,5 @@ features: Adds drive temperatures to the table on the hardware overview dashboard and a timeseries to show the temperature over time. - | - Adds picker to hardware overview dashboard to select a specific host to + Adds picker to hardware overview dashboard to select a specific host to show drive information for. diff --git a/releasenotes/notes/fix-cephadm-facts-2ee6dc9a1c617944.yaml b/releasenotes/notes/fix-cephadm-facts-2ee6dc9a1c617944.yaml index 98f0e1779..bb0071fae 100644 --- a/releasenotes/notes/fix-cephadm-facts-2ee6dc9a1c617944.yaml +++ b/releasenotes/notes/fix-cephadm-facts-2ee6dc9a1c617944.yaml @@ -3,4 +3,4 @@ fixes: - | The Ceph version is now determined by ``os_release``, rather than Ansible facts. Using Ansible facts caused playbooks to fail when - facts are not gathered. + facts are not gathered. diff --git a/releasenotes/notes/fix-radosgw-usage-exporter-duplicate-metrics-ca96b3e4b9d6afe9.yaml b/releasenotes/notes/fix-radosgw-usage-exporter-duplicate-metrics-ca96b3e4b9d6afe9.yaml new file mode 100644 index 000000000..fb54ae397 --- /dev/null +++ b/releasenotes/notes/fix-radosgw-usage-exporter-duplicate-metrics-ca96b3e4b9d6afe9.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Bumps the radosgw_usage_exporter tag to fix an issue where duplicate + metrics could be presented to Prometheus if S3 store usage was particularly + high. diff --git a/releasenotes/notes/kolla-bump-cve-2024-36039-07f18e18b5c86980.yaml b/releasenotes/notes/kolla-bump-cve-2024-36039-07f18e18b5c86980.yaml index 1877ebc62..bfddbb74d 100644 --- a/releasenotes/notes/kolla-bump-cve-2024-36039-07f18e18b5c86980.yaml +++ b/releasenotes/notes/kolla-bump-cve-2024-36039-07f18e18b5c86980.yaml @@ -3,5 +3,5 @@ security: - | Addresses critical vulnerability CVE-2024-36039 by bumping the PyMySQL library to 1.1.1 in all affected - Kolla images. This vulnerability allows SQL injection + Kolla images. This vulnerability allows SQL injection through untrusted JSON objects. diff --git a/releasenotes/notes/kolla-kayobe-version-check-f44d43c9c34d1b89.yaml b/releasenotes/notes/kolla-kayobe-version-check-f44d43c9c34d1b89.yaml new file mode 100644 index 000000000..4d1c38a91 --- /dev/null +++ b/releasenotes/notes/kolla-kayobe-version-check-f44d43c9c34d1b89.yaml @@ -0,0 +1,13 @@ +--- +features: + - | + Added playbooks to check the installed Kayobe/Kolla-Ansible versions + against the expected versions in Kayobe configuration. These checks + will run on Kayobe bootstrap, host and service operations. +upgrade: + - | + Kolla Ansible and Kayobe version checks are enabled by default which + may fail on existing deployments using custom forks or branches for + Kayobe and Kolla-Ansible. To disable version checks in configuration + set ``stackhpc_enable_kayobe_check`` and + ``stackhpc_enable_kolla_ansible_check`` to false. diff --git a/releasenotes/notes/ovn-octavia-provider-bug-2049551-c95d69965733cd78.yaml b/releasenotes/notes/ovn-octavia-provider-bug-2049551-c95d69965733cd78.yaml new file mode 100644 index 000000000..ec9037395 --- /dev/null +++ b/releasenotes/notes/ovn-octavia-provider-bug-2049551-c95d69965733cd78.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Updates Octavia images to fix Neutron endpoint selection in the OVN + provider. `LP#2049551 `__. diff --git a/releasenotes/notes/ubuntu-jammy-cd109d12954d7626.yaml b/releasenotes/notes/ubuntu-jammy-cd109d12954d7626.yaml index 2219bf37f..4265655c1 100644 --- a/releasenotes/notes/ubuntu-jammy-cd109d12954d7626.yaml +++ b/releasenotes/notes/ubuntu-jammy-cd109d12954d7626.yaml @@ -1,7 +1,7 @@ --- upgrade: - | - Dont pull apt packages from pulp for Ubuntu Jammy until Jammy packages + Dont pull apt packages from pulp for Ubuntu Jammy until Jammy packages are published. - | Dont pull ceph packages from ceph official repos for Ubuntu Jammy until diff --git a/releasenotes/notes/update-kayobe-automation-55fc9c5c380d819c.yaml b/releasenotes/notes/update-kayobe-automation-55fc9c5c380d819c.yaml index f8e2e32a3..f8dee5b4d 100644 --- a/releasenotes/notes/update-kayobe-automation-55fc9c5c380d819c.yaml +++ b/releasenotes/notes/update-kayobe-automation-55fc9c5c380d819c.yaml @@ -2,7 +2,7 @@ features: - | Upgrades kayobe-automation submodule to ``7676aa8``. - + Upgrades kayobe-workflows collection to ``v1.1.0``. Kayobe-automation config-diff now runs in parallel and generates both diff --git a/releasenotes/source/2025.1.rst b/releasenotes/source/2025.1.rst new file mode 100644 index 000000000..cec010e00 --- /dev/null +++ b/releasenotes/source/2025.1.rst @@ -0,0 +1,6 @@ +================================= +2025.1 Epoxy Series Release Notes +================================= + +.. release-notes:: + :branch: stackhpc/2025.1 diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py index 3db9e147d..6fe377022 100644 --- a/releasenotes/source/conf.py +++ b/releasenotes/source/conf.py @@ -45,7 +45,7 @@ # General information about the project. project = 'StackHPC Kayobe Configuration Release Notes' -copyright = '2024 StackHPC Ltd' +copyright = '2025 StackHPC Ltd' # Release notes do not need a version number in the title, they # cover multiple releases. @@ -223,3 +223,9 @@ # -- Options for Internationalization output ------------------------------ locale_dirs = ['locale/'] + + +# Otherwise causes: +# WARNING: cannot cache unpickable configuration value: 'html_context' (because it contains a function, class, or module object) [config.cache] +# See https://github.com/sphinx-doc/sphinx/issues/12300 +suppress_warnings = ["config.cache"] diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst index f0b9571e5..6d7030785 100644 --- a/releasenotes/source/index.rst +++ b/releasenotes/source/index.rst @@ -7,7 +7,7 @@ Contents .. toctree:: :maxdepth: 2 - master + 2025.1 2024.1 2023.1 zed diff --git a/releasenotes/source/master.rst b/releasenotes/source/master.rst deleted file mode 100644 index ebafdcb6d..000000000 --- a/releasenotes/source/master.rst +++ /dev/null @@ -1,6 +0,0 @@ -=========================== -Master Series Release Notes -=========================== - -.. release-notes:: - :branch: stackhpc/master diff --git a/requirements.txt b/requirements.txt index 1ef8d5272..13515c7e9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -kayobe@git+https://github.com/stackhpc/kayobe@stackhpc/master +kayobe@git+https://github.com/stackhpc/kayobe@stackhpc/2025.1 ansible-modules-hashivault>=5.2.1 jmespath diff --git a/tools/rabbitmq-queue-migration.sh b/tools/rabbitmq-queue-migration.sh index 089b197eb..d0f802341 100755 --- a/tools/rabbitmq-queue-migration.sh +++ b/tools/rabbitmq-queue-migration.sh @@ -65,7 +65,7 @@ if [[ ! "$1" = "--skip-checks" ]]; then sleep 60 # Assert that all queues are durable if ! ( kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_queues durable --silent | grep false" > /dev/null 2>&1 ); then - echo -e "${GREEN}Queues migrated successfully" + echo -e "${GREEN}Queues migrated successfully" else echo -e "${RED}Failed post-check: A controller has non-durable queues" fi diff --git a/tox.ini b/tox.ini index 5902d8f92..c103c9176 100644 --- a/tox.ini +++ b/tox.ini @@ -6,7 +6,7 @@ skipsdist = True [testenv] install_command = pip install {opts} {packages} deps = - -c{env:TOX_CONSTRAINTS_FILE:https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/master/upper-constraints.txt} + -c{env:TOX_CONSTRAINTS_FILE:https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/stackhpc/2025.1/upper-constraints.txt} -r{toxinidir}/test-requirements.txt [testenv:pep8] @@ -20,7 +20,7 @@ commands = allowlist_externals = rm skip_install = true deps = - -c{env:TOX_CONSTRAINTS_FILE:https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/master/upper-constraints.txt} + -c{env:TOX_CONSTRAINTS_FILE:https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/stackhpc/2025.1/upper-constraints.txt} -r{toxinidir}/releasenotes/requirements.txt commands = rm -rf releasenotes/build/html @@ -30,7 +30,7 @@ commands = allowlist_externals = rm skip_install = true deps = - -c{env:TOX_CONSTRAINTS_FILE:https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/master/upper-constraints.txt} + -c{env:TOX_CONSTRAINTS_FILE:https://raw.githubusercontent.com/stackhpc/requirements/refs/heads/stackhpc/2025.1/upper-constraints.txt} -r{toxinidir}/doc/requirements.txt commands = rm -rf doc/build/html