From bb36ee555a54577334fb499ead719c59fa44b441 Mon Sep 17 00:00:00 2001 From: Alex Welsh Date: Mon, 8 Jun 2026 13:58:27 +0100 Subject: [PATCH 1/2] Split out ci-aio and aio environments This change splits the ci-aio environment into two envs. "aio" is a new environment, designed to be deployed manually. "ci-aio" now inherits from the "aio" env and overrides some variables with CI-specific changes. This allows cleaner separation between what is "aio" and what is "ci". It makes it much easier for customers to now deploy their own AIO instancs. --- .../stackhpc-pull-request-path-filters.yml | 1 + doc/source/contributor/environments/aio.rst | 137 +++++++++ .../contributor/environments/ci-aio.rst | 269 +----------------- doc/source/contributor/environments/index.rst | 1 + .../contributor/testing-ci-automation.rst | 3 +- doc/source/usage.rst | 4 +- .../{ci-aio => aio}/automated-setup.sh | 38 ++- .../environments/{ci-aio => aio}/compute.yml | 0 .../{ci-aio => aio}/controllers.yml | 0 .../environments/{ci-aio => aio}/globals.yml | 0 .../post.d/10-debug-firewall.yml | 0 .../inventory/group_vars/cis-hardening/cis | 0 .../inventory/group_vars/controllers/lvm.yml | 0 .../group_vars/controllers/network-interfaces | 0 .../{ci-aio => aio}/inventory/groups | 0 .../{ci-aio => aio}/inventory/hosts | 0 .../inventory/kayobe-automation | 0 .../{ci-aio => aio}/kolla/config/ironic.conf | 0 .../kolla/config/nova/nova-compute.conf | 0 .../{ci-aio => aio}/kolla/globals.yml | 0 .../{ci-aio => aio}/network-allocation.yml | 0 .../environments/{ci-aio => aio}/networks.yml | 6 +- etc/kayobe/environments/aio/release-train.yml | 91 ++++++ etc/kayobe/environments/aio/stackhpc.yml | 7 + .../environments/{ci-aio => aio}/tempest.yml | 0 .../environments/{ci-aio => aio}/time.yml | 0 .../environments/ci-aio/.kayobe-environment | 3 + .../environments/ci-aio/stackhpc-ci.yml | 60 +--- etc/kayobe/environments/ci-aio/stackhpc.yml | 3 - terraform/aio/README.rst | 4 +- zuul.d/jobs.yaml | 1 + 31 files changed, 287 insertions(+), 341 deletions(-) create mode 100644 doc/source/contributor/environments/aio.rst rename etc/kayobe/environments/{ci-aio => aio}/automated-setup.sh (90%) rename etc/kayobe/environments/{ci-aio => aio}/compute.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/controllers.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/globals.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/hooks/overcloud-host-configure/post.d/10-debug-firewall.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/inventory/group_vars/cis-hardening/cis (100%) rename etc/kayobe/environments/{ci-aio => aio}/inventory/group_vars/controllers/lvm.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/inventory/group_vars/controllers/network-interfaces (100%) rename etc/kayobe/environments/{ci-aio => aio}/inventory/groups (100%) rename etc/kayobe/environments/{ci-aio => aio}/inventory/hosts (100%) rename etc/kayobe/environments/{ci-aio => aio}/inventory/kayobe-automation (100%) rename etc/kayobe/environments/{ci-aio => aio}/kolla/config/ironic.conf (100%) rename etc/kayobe/environments/{ci-aio => aio}/kolla/config/nova/nova-compute.conf (100%) rename etc/kayobe/environments/{ci-aio => aio}/kolla/globals.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/network-allocation.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/networks.yml (94%) create mode 100644 etc/kayobe/environments/aio/release-train.yml create mode 100644 etc/kayobe/environments/aio/stackhpc.yml rename etc/kayobe/environments/{ci-aio => aio}/tempest.yml (100%) rename etc/kayobe/environments/{ci-aio => aio}/time.yml (100%) create mode 100644 etc/kayobe/environments/ci-aio/.kayobe-environment delete mode 100644 etc/kayobe/environments/ci-aio/stackhpc.yml diff --git a/.github/stackhpc-pull-request-path-filters.yml b/.github/stackhpc-pull-request-path-filters.yml index b831f9f0b..422779dd6 100644 --- a/.github/stackhpc-pull-request-path-filters.yml +++ b/.github/stackhpc-pull-request-path-filters.yml @@ -16,6 +16,7 @@ aio: &aio - 'etc/kayobe/ansible/requirements.yml' - 'etc/kayobe/ansible/scripts/aio-init.sh' - 'etc/kayobe/environments/ci-aio/**' + - 'etc/kayobe/environments/aio/**' - 'etc/kayobe/inventory/**' - 'etc/kayobe/kolla/**' - 'kayobe-env' diff --git a/doc/source/contributor/environments/aio.rst b/doc/source/contributor/environments/aio.rst new file mode 100644 index 000000000..1df292b33 --- /dev/null +++ b/doc/source/contributor/environments/aio.rst @@ -0,0 +1,137 @@ +=== +aio +=== + +This environment deploys an all-in-one converged control/compute cloud for +testing. + +There are two ways to set up the environment. The automated setup script +automates the manual setup steps below, and is recommended for most users. +The manual setup steps are provided for reference, and for users who wish to +make changes to the setup process. + +.. seealso:: + + All-in-one GitHub CI testing inherits from this environment and is described + :ref:`here `. + +Prerequisites +============= + +* a Rocky Linux 9/10 or Ubuntu Noble 24.04 host +* Credentials for the StackHPC release pulp: ``ark.stackhpc.com`` + +Automated Setup +=============== + +Access the host via SSH. You may wish to start a ``tmux`` session. + +Download the setup script: + +.. parsed-literal:: + + curl -LO https://raw.githubusercontent.com/stackhpc/stackhpc-kayobe-config/stackhpc/2025.1/etc/kayobe/environments/aio/automated-setup.sh + +Change the permissions on the script: + +.. parsed-literal:: + + sudo chmod +x automated-setup.sh + +Create two files, ``~/release_pulp_username``, and ``~/release_pulp_password``, +and add your credentials in plaintext to each of these files. + +.. note:: + + By default, the ``stackhpc`` container namespace will be used. This is the + namespace for all released content. To use unreleased content, edit the + ``automated-setup.sh`` script and set ``KAYOBE_CONFIG_EDIT_PAUSE`` to + ``true``. Then, when the script pauses, change ``kolla_docker_namespace`` + to ``stackhpc-dev`` in ``release-train.yml``. This requires special + credentials that are authorised for the dev namespace. + +Run the setup script: + +.. parsed-literal:: + + ./automated-setup.sh deploy_full + +The script will pull the current version of Kayobe and this repository, and +then run the manual setup steps below. The script can be easily edited with the +following options: + +* ``BASE_PATH`` (default: ``~``) - Directory to deploy from. The directory must + exist before running the script. +* ``KAYOBE_BRANCH`` (default: ``stackhpc/2025.1``) - The branch of Kayobe + source code to use. +* ``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 + deployment after cloning the kayobe-config branch, so the environment can be + customised before continuing. +* ``AIO_RUN_TEMPEST`` (default: ``false``) - Whether to run Tempest Refstack + after deployment instead of the default VM smoke test. +* ``USE_OVS`` (default: ``false``) - Whether to disable OVN and deploy using + OVS instead. +* ``VAULT_PASSWORD_FILE`` (default: ``$BASE_PATH/vault-pw``) - Path to a file + containing the Kayobe vault password for the environment. + +Ironic +====== + +.. note:: + + These instructions have not been validated for some time. Proceed with + caution. + +For a control plane with Ironic enabled, a "bare metal" instance can be +deployed after the main deployment has finished. We can use the Tenks project +to create fake bare metal nodes. + +Clone the tenks repository: + +.. parsed-literal:: + + cd ~/src/kayobe + git clone https://opendev.org/openstack/tenks.git + +Optionally, edit the Tenks configuration file, +``~/src/kayobe/dev/tenks-deploy-config-compute.yml``. + +Run the ``dev/tenks-deploy-compute.sh`` script to deploy Tenks: + +.. parsed-literal:: + + cd ~/src/kayobe + export KAYOBE_CONFIG_SOURCE_PATH=~/src/kayobe-config + export KAYOBE_VENV_PATH=~/venvs/kayobe + ./dev/tenks-deploy-compute.sh ./tenks/ + +Check that Tenks has created VMs called tk0 and tk1: + +.. parsed-literal:: + + sudo virsh list --all + +Verify that VirtualBMC is running: + +.. parsed-literal:: + + ~/tenks-venv/bin/vbmc list + +We are now ready to run the ``dev/overcloud-test-baremetal.sh`` script. This +will run the ``init-runonce`` setup script provided by Kolla Ansible that +registers images, networks, flavors etc. It will then deploy a bare metal +server instance, and delete it once it becomes active: + +.. parsed-literal:: + + ./dev/overcloud-test-baremetal.sh + +The machines and networking created by Tenks can be cleaned up via +``dev/tenks-teardown-compute.sh``: + +.. parsed-literal:: + + ./dev/tenks-teardown-compute.sh ./tenks diff --git a/doc/source/contributor/environments/ci-aio.rst b/doc/source/contributor/environments/ci-aio.rst index 2a45c667a..73ec77d7b 100644 --- a/doc/source/contributor/environments/ci-aio.rst +++ b/doc/source/contributor/environments/ci-aio.rst @@ -2,269 +2,16 @@ ci-aio ====== -This environment deploys an all-in-one converged control/compute cloud for +This environment deploys an all-in-one converged control/compute cloud for CI testing. -There are two ways to set up the environment. The automated setup script -automates the manual setup steps below, and is recommended for most users. -The manual setup steps are provided for reference, and for users who wish to -make changes to the setup process. +It inherits from the ``aio`` environment, with CI-specific overrides for +internal ``stackhpc-kayobe-config`` development. -.. seealso:: - - All-in-one GitHub CI testing using this environment is described :ref:`here - `. - -Prerequisites -============= - -* a Rocky Linux 9 or Ubuntu Noble 24.04 host - -Automated Setup -=============== - -Access the host via SSH. You may wish to start a ``tmux`` session. - -Download the setup script: - -.. parsed-literal:: - - curl -LO 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: - -.. parsed-literal:: - - sudo chmod +x automated-setup.sh - -Acquire the Ansible Vault password for this repository, and store a -copy at ``~/vault-pw``. - -Run the setup script: - -.. parsed-literal:: - - ./automated-setup.sh deploy_full - -The script will pull the current version of Kayobe and this repository, and -then run the manual setup steps below. The script can be easily edited with the -following options: - -* ``BASE_PATH`` (default: ``~``) - Directory to deploy from. The directory must - exist before running the script. -* ``KAYOBE_BRANCH`` (default: ``stackhpc/2025.1``) - The branch of Kayobe - source code to use. -* ``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 - deployment after cloning the kayobe-config branch, so the environment can be - customised before continuing. -* ``AIO_RUN_TEMPEST`` (default: ``false``) - Whether to run Tempest Refstack - after deployment instead of the default VM smoke test. -* ``USE_OVS`` (default: ``false``) - Whether to disable OVN and deploy using - OVS instead. -* ``VAULT_PASSWORD_FILE`` (default: ``$BASE_PATH/vault-pw``) - Path to a file - containing the Kayobe vault password for the environment. - -Manual Setup -============ - -Host Configuration ------------------- - -Access the host via SSH. - -If using an LVM-based image, extend the ``lv_home`` and ``lv_tmp`` logical -volumes. - -.. parsed-literal:: - - sudo pvresize $(sudo pvs --noheadings | head -n 1 | awk '{print $1}') - sudo lvextend -L 4G /dev/rootvg/lv_home -r - sudo lvextend -L 4G /dev/rootvg/lv_tmp -r - -Install package dependencies. - -On Rocky Linux: - -.. parsed-literal:: - - sudo dnf install -y git - -On Ubuntu: - -.. parsed-literal:: - - sudo apt update - sudo apt install -y gcc git libffi-dev python3-dev python-is-python3 python3-venv - -Clone the Kayobe and Kayobe configuration repositories (this one): - -.. parsed-literal:: - - cd - mkdir -p src - pushd src - git clone https://github.com/stackhpc/stackhpc-kayobe-config -b |current_release_git_branch_name| kayobe-config - popd - -Create a virtual environment and install Kayobe: - -.. parsed-literal:: - - cd - mkdir -p venvs - pushd venvs - python3 -m venv kayobe - source kayobe/bin/activate - pip install -U pip - pip install -r ../src/kayobe-config/requirements.txt - popd - -Add initial network configuration: - -.. parsed-literal:: - - sudo ip l add breth1 type bridge - sudo ip l set breth1 up - sudo ip a add 192.168.33.3/24 dev breth1 - sudo ip l add dummy1 type dummy - sudo ip l set dummy1 up - sudo ip l set dummy1 master breth1 - -On Ubuntu systems, persist the running network configuration. - -.. parsed-literal:: - - sudo cp /run/systemd/network/* /etc/systemd/network - -Configuration -============= - -If using Ironic: - -.. parsed-literal:: - - cd src/kayobe-config - cat << EOF > etc/kayobe/aio.yml - kolla_enable_ironic: true - EOF +For instructions on deploying your own all-in-one instance. See the :doc:`aio +environment ` documentation for more information. -Installation ------------- - -Acquire the Ansible Vault password for this repository, and store a copy at -``~/vault-pw``. - -The following commands install Kayobe and its dependencies, and prepare the -Ansible control host. - -.. parsed-literal:: - - export KAYOBE_VAULT_PASSWORD=$(cat ~/vault-pw) - pushd ~/venvs/kayobe - source bin/activate - popd - pushd ~/src/kayobe-config - source kayobe-env --environment ci-aio - kayobe control host bootstrap - -Deployment ----------- - -If using an LVM-based image, grow the root volume group. - -.. parsed-literal:: - - kayobe playbook run etc/kayobe/ansible/tools/growroot.yml - -On Ubuntu systems, purge the command-not-found package. - -.. parsed-literal:: - - kayobe playbook run etc/kayobe/ansible/fixes/purge-command-not-found.yml - -Next, configure the host OS & services. - -.. parsed-literal:: - - kayobe overcloud host configure - -Finally, deploy the overcloud services. - -.. parsed-literal:: - - kayobe overcloud service deploy - -The control plane should now be running. - -If using Ironic, run overcloud post configuration: - -.. parsed-literal:: - - source ~/src/kayobe-config/etc/kolla/public-openrc.sh - kayobe overcloud post configure - -Testing -------- - -Run a smoke test: - -.. parsed-literal:: - - cd ~/src/kayobe - ./dev/overcloud-test-vm.sh - -Ironic ------- - -For a control plane with Ironic enabled, a "bare metal" instance can be -deployed. We can use the Tenks project to create fake bare metal nodes. - -Clone the tenks repository: - -.. parsed-literal:: - - cd ~/src/kayobe - git clone https://opendev.org/openstack/tenks.git - -Optionally, edit the Tenks configuration file, -``~/src/kayobe/dev/tenks-deploy-config-compute.yml``. - -Run the ``dev/tenks-deploy-compute.sh`` script to deploy Tenks: - -.. parsed-literal:: - - cd ~/src/kayobe - export KAYOBE_CONFIG_SOURCE_PATH=~/src/kayobe-config - export KAYOBE_VENV_PATH=~/venvs/kayobe - ./dev/tenks-deploy-compute.sh ./tenks/ - -Check that Tenks has created VMs called tk0 and tk1: - -.. parsed-literal:: - - sudo virsh list --all - -Verify that VirtualBMC is running: - -.. parsed-literal:: - - ~/tenks-venv/bin/vbmc list - -We are now ready to run the ``dev/overcloud-test-baremetal.sh`` script. This -will run the ``init-runonce`` setup script provided by Kolla Ansible that -registers images, networks, flavors etc. It will then deploy a bare metal -server instance, and delete it once it becomes active: - -.. parsed-literal:: - - ./dev/overcloud-test-baremetal.sh - -The machines and networking created by Tenks can be cleaned up via -``dev/tenks-teardown-compute.sh``: - -.. parsed-literal:: +.. seealso:: - ./dev/tenks-teardown-compute.sh ./tenks + All-in-one GitHub CI testing using this environment is further described + :ref:`here `. diff --git a/doc/source/contributor/environments/index.rst b/doc/source/contributor/environments/index.rst index 81afb7da0..c2324314b 100644 --- a/doc/source/contributor/environments/index.rst +++ b/doc/source/contributor/environments/index.rst @@ -6,6 +6,7 @@ The following Kayobe environments are provided with this configuration: .. toctree:: :maxdepth: 1 + aio ci-aio ci-builder ci-multinode diff --git a/doc/source/contributor/testing-ci-automation.rst b/doc/source/contributor/testing-ci-automation.rst index 4601c74db..c974c1dae 100644 --- a/doc/source/contributor/testing-ci-automation.rst +++ b/doc/source/contributor/testing-ci-automation.rst @@ -99,9 +99,10 @@ All in one testing The ``.github/workflows/stackhpc-all-in-one.yml`` reusable workflow accepts various parameters, and the following are used to create a test matrix for PRs: - - Operating System (Rocky 9, Ubuntu Noble) + - Operating System (Rocky 9, Rocky 10, Ubuntu Noble) - Neutron plugin (OVS, OVN) - Upgrade or no upgrade + - aarch64 or x86 The workflow runs on an autoscaling `Actions Runner Controller (ARC) `_ diff --git a/doc/source/usage.rst b/doc/source/usage.rst index 0b503e764..a2f5ef8af 100644 --- a/doc/source/usage.rst +++ b/doc/source/usage.rst @@ -86,7 +86,7 @@ Kayobe environments can also be specified, for example, to create an AIO environ --base-path skc-aio-environment \ --kayobe-config-repo https://github.com/stackhpc/stackhpc-kayobe-config.git \ --kayobe-config-branch |current_release_git_branch_name| \ - --kayobe-config-env-name ci-aio \ + --kayobe-config-env-name aio \ --vault-password-file ~/vault-pw \ --kayobe-in-requirements @@ -116,5 +116,5 @@ service deployment on overcloud hosts: beokay.py run \ 'kayobe overcloud service deploy' \ --base-path skc-aio-environment \ - --kayobe-config-env-name ci-aio \ + --kayobe-config-env-name aio \ --vault-password-file ~/vault-pw diff --git a/etc/kayobe/environments/ci-aio/automated-setup.sh b/etc/kayobe/environments/aio/automated-setup.sh similarity index 90% rename from etc/kayobe/environments/ci-aio/automated-setup.sh rename to etc/kayobe/environments/aio/automated-setup.sh index e1e36af6c..9723a48d0 100755 --- a/etc/kayobe/environments/ci-aio/automated-setup.sh +++ b/etc/kayobe/environments/aio/automated-setup.sh @@ -8,7 +8,11 @@ KAYOBE_AIO_LVM=true KAYOBE_CONFIG_EDIT_PAUSE=false AIO_RUN_TEMPEST=false USE_OVS=false -VAULT_PASSWORD_FILE=$BASE_PATH/vault-pw + +# NOTE(Alex-Welsh): These values should not be changed unless you are sure you +# know what you are doing. +ARK_USERNAME_FILE=~/release_pulp_username +ARK_PASSWORD_FILE=~/release_pulp_password # Error handling function error_exit() { @@ -16,10 +20,18 @@ error_exit() { exit 1 } -# Ensure vault password file exists -check_vault_password() { - if [[ ! -f "$VAULT_PASSWORD_FILE" ]]; then - error_exit "Vault password file not found at $VAULT_PASSWORD_FILE" +# Ensure Ark credentials exist and are valid +check_ark_credentials() { + if [[ ! -f "$ARK_USERNAME_FILE" ]]; then + error_exit "Release pulp username file not found at $ARK_USERNAME_FILE" + fi + + if [[ ! -f "$ARK_PASSWORD_FILE" ]]; then + error_exit "Release pulp password file not found at $ARK_PASSWORD_FILE" + fi + + if [ "$(curl -s -o /dev/null -w "%{http_code}" -u "$(cat $ARK_USERNAME_FILE):$(cat $ARK_PASSWORD_FILE)" https://ark.stackhpc.com/pulp/api/v3/users/)" == "401" ]; then + error_exit "Pulp credentials are not valid" fi } @@ -72,7 +84,7 @@ pause_for_configuration() { disable_ovn() { if [[ "$USE_OVS" == true ]]; then echo "Disabling OVN..." - echo "kolla_enable_ovn: false" > "$BASE_PATH/src/kayobe-config/etc/kayobe/environments/ci-aio/disable-ovn.yml" + echo "kolla_enable_ovn: false" > "$BASE_PATH/src/kayobe-config/etc/kayobe/environments/aio/disable-ovn.yml" fi } @@ -83,8 +95,8 @@ remove_lvm_configuration() { error_exit "You have KAYOBE_AIO_LVM set to true, but LVM has not been found on this system. Set KAYOBE_AIO_LVM to false to ignore this warning." fi echo "Removing LVM configuration..." - rm -f "$BASE_PATH/src/kayobe-config/etc/kayobe/environments/ci-aio/inventory/group_vars/controllers/lvm.yml" || true - sed -i -e '/controller_lvm_groups/,+2d' "$BASE_PATH/src/kayobe-config/etc/kayobe/environments/ci-aio/controllers.yml" || true + rm -f "$BASE_PATH/src/kayobe-config/etc/kayobe/environments/aio/inventory/group_vars/controllers/lvm.yml" || true + sed -i -e '/controller_lvm_groups/,+2d' "$BASE_PATH/src/kayobe-config/etc/kayobe/environments/aio/controllers.yml" || true fi } @@ -122,10 +134,8 @@ configure_network() { # Helper function to activate the Kayobe environment activate_kayobe_env() { - KAYOBE_VAULT_PASSWORD=$(cat $VAULT_PASSWORD_FILE) - export KAYOBE_VAULT_PASSWORD pushd "$BASE_PATH/src/kayobe-config" - source kayobe-env --environment ci-aio + source kayobe-env --environment aio source $BASE_PATH/venvs/kayobe/bin/activate set -x } @@ -224,7 +234,6 @@ run_tempest() { -v "$(pwd)":/stack/kayobe-automation-env/src/kayobe-config \ -v "$(pwd)"/tempest-artifacts:/stack/tempest-artifacts \ -e KAYOBE_ENVIRONMENT \ - -e KAYOBE_VAULT_PASSWORD \ -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \ kayobe:latest \ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/tempest.sh \ @@ -243,8 +252,7 @@ generate_kayobe_env_script() { cat > $BASE_PATH/kayobe-env.sh < Date: Mon, 8 Jun 2026 14:40:50 +0100 Subject: [PATCH 2/2] dnm: trim CI --- .github/workflows/stackhpc-pull-request.yml | 390 ++++++++++---------- 1 file changed, 195 insertions(+), 195 deletions(-) diff --git a/.github/workflows/stackhpc-pull-request.yml b/.github/workflows/stackhpc-pull-request.yml index c0ad4541c..9b2bf3ecc 100644 --- a/.github/workflows/stackhpc-pull-request.yml +++ b/.github/workflows/stackhpc-pull-request.yml @@ -169,209 +169,209 @@ jobs: secrets: inherit if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} - all-in-one-rocky-9-ovs: - name: aio (Rocky 9 OVS) - permissions: {} - 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-ovs: + # name: aio (Rocky 9 OVS) + # permissions: {} + # 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-aarch64-ovs: - name: aio (Rocky 9 aarch64 OVS) - permissions: {} - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - architecture: aarch64 - 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-aarch64-ovs: + # name: aio (Rocky 9 aarch64 OVS) + # permissions: {} + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # architecture: aarch64 + # 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) - permissions: {} - 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' }} + # all-in-one-rocky-9-ovn: + # name: aio (Rocky 9 OVN) + # permissions: {} + # 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' }} - all-in-one-rocky-9-aarch64-ovn: - name: aio (Rocky 9 aarch64 OVN) - permissions: {} - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - architecture: aarch64 - 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' }} + # all-in-one-rocky-9-aarch64-ovn: + # name: aio (Rocky 9 aarch64 OVN) + # permissions: {} + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # architecture: aarch64 + # 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' }} - all-in-one-rocky-10-ovs: - name: aio (Rocky 10 OVS) - permissions: {} - 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: "10" - 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-10-ovs: + # name: aio (Rocky 10 OVS) + # permissions: {} + # 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: "10" + # 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-10-aarch64-ovs: - name: aio (Rocky 10 aarch64 OVS) - permissions: {} - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - architecture: aarch64 - os_distribution: rocky - os_release: "10" - 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-10-aarch64-ovs: + # name: aio (Rocky 10 aarch64 OVS) + # permissions: {} + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # architecture: aarch64 + # os_distribution: rocky + # os_release: "10" + # 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-10-ovn: - name: aio (Rocky 10 OVN) - permissions: {} - 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: "10" - 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' }} + # all-in-one-rocky-10-ovn: + # name: aio (Rocky 10 OVN) + # permissions: {} + # 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: "10" + # 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' }} - all-in-one-rocky-10-aarch64-ovn: - name: aio (Rocky 10 aarch64 OVN) - permissions: {} - needs: - - check-changes - - build-kayobe-image - uses: ./.github/workflows/stackhpc-all-in-one.yml - with: - kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} - architecture: aarch64 - os_distribution: rocky - os_release: "10" - 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' }} + # all-in-one-rocky-10-aarch64-ovn: + # name: aio (Rocky 10 aarch64 OVN) + # permissions: {} + # needs: + # - check-changes + # - build-kayobe-image + # uses: ./.github/workflows/stackhpc-all-in-one.yml + # with: + # kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + # architecture: aarch64 + # os_distribution: rocky + # os_release: "10" + # 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 three upgrade scenarios: Ubuntu Jammy to Noble OVN and Rocky 9 OVN. + # # Test three upgrade scenarios: Ubuntu Jammy to Noble OVN and Rocky 9 OVN. - all-in-one-upgrade-ubuntu-jammy-to-noble-ovn: - name: aio upgrade (Ubuntu Jammy to Noble OVN) - permissions: {} - 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: jammy - ssh_username: ubuntu - 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-ubuntu-jammy-to-noble-ovn: + # name: aio upgrade (Ubuntu Jammy to Noble OVN) + # permissions: {} + # 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: jammy + # ssh_username: ubuntu + # 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) - permissions: {} - 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) + # permissions: {} + # 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) - permissions: {} - 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' }} + # all-in-one-upgrade-rocky-9-ovs: + # name: aio upgrade (Rocky 9 OVS) + # permissions: {} + # 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' }}