From d5dff92232c8567d9b25053a3dc9c6ed3cdde7f6 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Thu, 22 Feb 2024 13:07:45 +0100 Subject: [PATCH 01/16] Fix query for top Ceph pools by capacity used This panel was only showing the most used pool instead of as many pools as configured with the ``$topk`` variable. Signed-off-by: Pierre Riteau --- .../kolla/config/grafana/dashboards/ceph/ceph_pools.json | 2 +- ...ceph-pools-top-capacity-used-panel-26d495c45f2678c8.yaml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-ceph-pools-top-capacity-used-panel-26d495c45f2678c8.yaml diff --git a/etc/kayobe/kolla/config/grafana/dashboards/ceph/ceph_pools.json b/etc/kayobe/kolla/config/grafana/dashboards/ceph/ceph_pools.json index f2882ed60..b3a4af1bd 100644 --- a/etc/kayobe/kolla/config/grafana/dashboards/ceph/ceph_pools.json +++ b/etc/kayobe/kolla/config/grafana/dashboards/ceph/ceph_pools.json @@ -657,7 +657,7 @@ ], "targets": [ { - "expr": "topk(1,((ceph_pool_stored / (ceph_pool_stored + ceph_pool_max_avail)) * on(pool_id) group_left(name) ceph_pool_metadata))", + "expr": "topk($topk,((ceph_pool_stored / (ceph_pool_stored + ceph_pool_max_avail)) * on(pool_id) group_left(name) ceph_pool_metadata))", "format": "table", "hide": false, "instant": true, diff --git a/releasenotes/notes/fix-ceph-pools-top-capacity-used-panel-26d495c45f2678c8.yaml b/releasenotes/notes/fix-ceph-pools-top-capacity-used-panel-26d495c45f2678c8.yaml new file mode 100644 index 000000000..cdf38bb3a --- /dev/null +++ b/releasenotes/notes/fix-ceph-pools-top-capacity-used-panel-26d495c45f2678c8.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes Grafana panel of top Ceph pools by capacity used. This panel was only + showing the most used pool instead of as many pools as configured with the + ``$topk`` variable. From 93ba47e7496ce78a5d8e09483375ca3f840a39fd Mon Sep 17 00:00:00 2001 From: Jake Hutchinson Date: Thu, 22 Feb 2024 15:55:26 +0000 Subject: [PATCH 02/16] Default to RegionOne for os-capacity --- etc/kayobe/stackhpc-monitoring.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/stackhpc-monitoring.yml b/etc/kayobe/stackhpc-monitoring.yml index 8d0771e13..13bf6ba0f 100644 --- a/etc/kayobe/stackhpc-monitoring.yml +++ b/etc/kayobe/stackhpc-monitoring.yml @@ -20,7 +20,7 @@ stackhpc_enable_os_capacity: false stackhpc_os_capacity_auth_url: "http{% if kolla_enable_tls_internal | bool %}s{% endif %}://{{ kolla_internal_fqdn }}:5000" # OpenStack region for OpenStack Capacity -stackhpc_os_capacity_openstack_region_name: "{{ openstack_region_name | default(RegionOne) }}" +stackhpc_os_capacity_openstack_region_name: "RegionOne" # Whether TLS certificate verification is enabled for the OpenStack Capacity # exporter during Keystone authentication. From 0aa2c97ab5b7b6c298db1b36bb4f684b8a140fa6 Mon Sep 17 00:00:00 2001 From: Grzegorz Koper Date: Wed, 24 Jan 2024 10:32:25 +0100 Subject: [PATCH 03/16] Moving variable from play to group_vars This lets us override in case one of the machines have different VG name Otherwise play variables take priority. --- etc/kayobe/ansible/growroot.yml | 2 -- etc/kayobe/inventory/group_vars/all/growroot | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 etc/kayobe/inventory/group_vars/all/growroot diff --git a/etc/kayobe/ansible/growroot.yml b/etc/kayobe/ansible/growroot.yml index aa3dcc05a..333991aa0 100644 --- a/etc/kayobe/ansible/growroot.yml +++ b/etc/kayobe/ansible/growroot.yml @@ -23,8 +23,6 @@ ansible_python_interpreter: /usr/bin/python3 # Work around no known_hosts entry on first boot. ansible_ssh_common_args: "-o StrictHostKeyChecking=no" - # Name of the LVM VG containing the root PV. - growroot_vg: "rootvg" # Don't assume facts are present. os_family: "{{ ansible_facts.os_family | default('Debian' if os_distribution == 'ubuntu' else 'RedHat') }}" # Ignore LVM check diff --git a/etc/kayobe/inventory/group_vars/all/growroot b/etc/kayobe/inventory/group_vars/all/growroot new file mode 100644 index 000000000..280cee665 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/all/growroot @@ -0,0 +1,3 @@ +--- +# Name of the LVM VG containing the root PV for ansible/growroot.yml +growroot_vg: "rootvg" From ed6eab94044d9fa5c0f85c78b1b57a79626b1fc9 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Tue, 27 Feb 2024 10:59:26 +0100 Subject: [PATCH 04/16] Document update of IPA kernel URL This may be required when migrating pre-Ussuri deployments. --- doc/source/operations/rocky-linux-9.rst | 29 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/doc/source/operations/rocky-linux-9.rst b/doc/source/operations/rocky-linux-9.rst index c21c50f13..22b9323ae 100644 --- a/doc/source/operations/rocky-linux-9.rst +++ b/doc/source/operations/rocky-linux-9.rst @@ -45,11 +45,6 @@ The following patches have been **merged** to the downstream StackHPC ``stackhpc - https://review.opendev.org/c/openstack/kayobe/+/898563 (to fix ``kayobe overcloud deprovision``) - https://review.opendev.org/c/openstack/kayobe/+/898284 (if deployment predates Ussuri) - - - TODO: Put this into the procedure. - - **Must reprocess inspection data to update IPA kernel URL (see - release note)** - - https://review.opendev.org/c/openstack/kayobe/+/898777 - https://review.opendev.org/c/openstack/kayobe/+/898915 - https://review.opendev.org/c/openstack/kayobe/+/898905 @@ -119,6 +114,30 @@ The error from NetworkManager was: [1697192659.9611] keyfile: ipv4.routing-rules: invalid value for "routing-rule1": invalid value for "table" +Updating the IPA kernel URL +--------------------------- + +If the enrolment of the overcloud nodes in Bifrost predates Ussuri, the +``deploy_kernel`` configuration probably still points to the old +``ipa.vmlinuz`` file, resulting in the following error in Bifrost: + +.. code-block:: shell + + Failed to prepare to deploy: Validation of image href http://10.161.0.3:8080/ipa.vmlinuz failed, reason: Got HTTP code 404 instead of 200 in response to HEAD request. + +Switch the deployment kernel to ``ipa.kernel``: + +.. code-block:: shell + + (bifrost-deploy) OS_CLOUD=bifrost baremetal node set --driver-info deploy_kernel=http://:8080/ipa.kernel + +Alternatively, the node inspection data can be reprocessed, but this may erase +any manual configuration changes applied since the last inspection: + +.. code-block:: shell + + (bifrost-deploy) OS_CLOUD=bifrost baremetal introspection reprocess + Switching to iPXE ----------------- From 0bc60fcfc626392a53000c1e04fd6869c9035299 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Wed, 21 Feb 2024 17:33:04 +0000 Subject: [PATCH 05/16] Add docs page for running Tempest --- doc/source/operations/index.rst | 1 + doc/source/operations/tempest.rst | 326 ++++++++++++++++++++++++++++++ 2 files changed, 327 insertions(+) create mode 100644 doc/source/operations/tempest.rst diff --git a/doc/source/operations/index.rst b/doc/source/operations/index.rst index f547f13bb..b151c46f4 100644 --- a/doc/source/operations/index.rst +++ b/doc/source/operations/index.rst @@ -13,3 +13,4 @@ This guide is for operators of the StackHPC Kayobe configuration project. rocky-linux-9 ubuntu-jammy secret-rotation + tempest diff --git a/doc/source/operations/tempest.rst b/doc/source/operations/tempest.rst new file mode 100644 index 000000000..82135adf9 --- /dev/null +++ b/doc/source/operations/tempest.rst @@ -0,0 +1,326 @@ +====================================== +Running Tempest with Kayobe Automation +====================================== + +Overview +======== + +This document describes how to configure and run `Tempest +`_ using `kayobe-automation +`_ from the ``.automation`` +submodule included with ``stackhpc-kayobe-config``. + +The best way of running Tempest is to use CI/CD workflows. Before proceeding, +consider whether it would be possible to use/set up a CI/CD workflow instead. +For more information, see the :doc:`CI/CD workflows page +`. + +The following guide will assume all commands are run from your +``kayobe-config`` root and the environment has been configured to run Kayobe +commands unless stated otherwise. + +Prerequisites +============= + +Installing Docker +----------------- + +``kayobe-automation`` runs in a container on the Ansible control host. This +means that Docker must be installed on the Ansible control host if it is not +already. + +.. warning:: + + Docker can cause networking issues when it is installed. By default, it + will create a bridge and change ``iptables`` rules. These can be disabled + by setting the following in ``/etc/docker/daemon.json``: + + .. code-block:: json + + { + "bridge": "none", + "iptables": false + } + + The bridge is the most common cause of issues and is *usually* safe to + disable. Disabling the ``iptables`` rules will break any GitHub actions + runners running on the host. + +To install Docker on Ubuntu: + +.. code-block:: bash + + # Add Docker's official GPG key: + sudo apt-get update + sudo apt-get install ca-certificates curl + sudo install -m 0755 -d /etc/apt/keyrings + sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + sudo chmod a+r /etc/apt/keyrings/docker.asc + + # Add the repository to Apt sources: + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +Installing Docker on CentOS/Rocky: + +.. code-block:: bash + + sudo dnf install -y dnf-utils + sudo dnf-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo + sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +Ensure Docker is running & enabled: + +.. code-block:: bash + + sudo systemctl start docker + sudo systemctl enable docker + +The Docker ``buildx`` plugin must be installed. If you are using an existing +installation of docker, you may need to install it with: + +.. code-block:: bash + + sudo dnf/apt install docker-buildx-plugin + sudo docker buildx install + # or if that fails: + sudo docker plugin install buildx + +Building a Kayobe container +--------------------------- + +Build a Kayobe automation image: + +.. code-block:: bash + + git submodule init + git submodule update + # If running on Ubuntu, the fact cache can confuse Kayobe in the CentOS-based container + mv etc/kayobe/facts{,-old} + sudo DOCKER_BUILDKIT=1 docker build --file .automation/docker/kayobe/Dockerfile --tag kayobe:latest . + +Configuration +============= + +Kayobe automation configuration files are stored in the ``.automation.conf/`` +directory. It contains: + +- A script used to export environment variables for meta configuration of + Tempest - ``.automation.conf/config.sh``. +- Tempest configuration override files, stored in ``.automation.conf/tempest/`` + and conventionally named ``tempest.overrides.conf`` or + ``tempest-.overrides.conf``. +- Tempest load lists, stored in ``.automation.conf/tempest/load-lists``. +- Tempest skip lists, stored in ``.automation.conf/tempest/skip-lists``. + +config.sh +--------- + +``config.sh`` is a mandatory shell script, primarily used to export environment +variables for the meta configuration of Tempest. + +See: +https://github.com/stackhpc/docker-rally/blob/master/bin/rally-verify-wrapper.sh +for a full list of Tempest parameters that can be overridden. + +The most common variables to override are: + +- ``TEMPEST_CONCURRENCY`` - The maximum number of tests to run in parallel at + one time. Higher values are faster but increase the risk of timeouts. 1-2 is + safest in CI/Tenks/Multinode/AIO etc. 8-32 is typical in production. Default + value is 2. +- ``KAYOBE_AUTOMATION_TEMPEST_LOADLIST``: the filename of a load list in the + ``load-lists`` directory. Default value is ``default`` (symlink to refstack). +- ``KAYOBE_AUTOMATION_TEMPEST_SKIPLIST``: the filename of a load list in the + ``skip-lists`` directory. Default value is unset. +- ``TEMPEST_OPENRC``: The **contents** of an ``openrc.sh`` file, to be used by + Tempest to create resources on the cloud. Default is to read in the contents + of ``etc/kolla/public-openrc.sh``. + +tempest.overrides.conf +---------------------- + +Tempest uses a configuration file to define which tests are run and how to run +them. A full sample configuration file can be found `here +`_. Sensible +defaults exist for all values and in most situations, a blank +``*overrides.conf`` file will successfully run many tests. It will however also +skip many tests which may otherwise be appropriate to run. + +`Shakespeare `_ is a tool for +generating Tempest configuration files. It contains elements for different +cloud features, which can be combined to template out a detailed configuration +file. This is the best-practice approach. + +Below is an example of a manually generated file including many of the most +common overrides. It makes many assumptions about the environment, so make sure +you understand all the options before applying them. + +.. NOTE(upgrade): Microversions change for each release +.. code-block:: ini + + [openstack] + # Use a StackHPC-built image without a default password. + img_url=https://github.com/stackhpc/cirros/releases/download/20231206/cirros-d231206-x86_64-disk.img + + [auth] + # Expect unlimited quotas for CPU cores and RAM + compute_quotas = cores:-1,ram:-1 + + [compute] + # Required for migration testing + min_compute_nodes = 2 + # Required to test some API features + min_microversion = 2.1 + max_microversion = 2.90 + # Flavors for creating test servers and server resize. The ``alt`` flavor should be larger. + flavor_ref = + flavor_ref_alt = + volume_multiattach = true + + [compute-feature-enabled] + # Required for migration testing + resize = true + live_migration = true + block_migration_for_live_migration = false + volume_backed_live_migration = true + + [placement] + min_microversion = "1.0" + max_microversion = "1.39" + + [volume] + storage_protocol = ceph + # Required to test some API features + min_microversion = 3.0 + max_microversion = 3.68 + +Tempest configuration override files are stored in +``.automation.conf/tempest/``. The default file used is +``tempest.overrides.conf`` or ``tempest-.overrides.conf`` +depending on whether a Kayobe environment is enabled. This can be changed by +setting ``KAYOBE_AUTOMATION_TEMPEST_CONF_OVERRIDES`` to a different file path. +An ``overrides.conf`` file must be supplied, even if it is blank. + +Load Lists +---------- + +Load lists are a newline-separated list of tests to run. They are stored in +``.automation.conf/tempest/load-lists/``. The directory contains three objects +by default: + +- ``tempest-full`` - A complete list of all possible tests. +- ``platform.2022.11-test-list.txt`` - A reduced list of tests to match the + `Refstack `_ standard. +- ``default`` - A symlink to ``platform.2022.11-test-list.txt``. + +Test lists can be selected by changing ``KAYOBE_AUTOMATION_TEMPEST_LOADLIST`` +in ``config.sh``. The default value is ``default``, which symlinks to +``platform.2022.11-test-list.txt``. + +A common use case is to use the ``failed-tests`` list output from a previous +Tempest run as a load list, to retry the failed tests after making changes. + +Skip Lists +---------- + +Skip lists are a newline-separated list of tests to Skip. They are stored in +``.automation.conf/tempest/skip-lists/``. Each line consists of a pattern to +match against test names, and a string explaining why the test is being +skipped e.g. + +.. code-block:: + + tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details.*: "Cirros image doesn't have /var/run/udhcpc.eth0.pid" + +There is no requirement for a skip list, and none is selected by default. A +skip list can be selected by setting ``KAYOBE_AUTOMATION_TEMPEST_SKIPLIST`` in +``config.sh``. + +Tempest runner +-------------- + +While the Kayobe automation container is always deployed to the ansible control +host, the Tempest container is deployed to the host in the ``tempest_runner`` +group, which can be any host in the Kayobe inventory. The group should only +ever contain one host. The seed is usually used as the tempest runner however +it is also common to use the Ansible control host or an infrastructure VM. The +main requirement of the host is that it can reach the OpenStack API. + +Running Tempest +=============== + +Kayobe automation will need to SSH to the Tempest runner (even if they are on +the same host), so requires an SSH key exported as +``KAYOBE_AUTOMATION_SSH_PRIVATE_KEY`` e.g. + +.. code-block:: bash + + export KAYOBE_AUTOMATION_SSH_PRIVATE_KEY=$(cat ~/.ssh/id_rsa) + +Tempest outputs will be sent to the ``tempest-artifacts/`` directory. Create +one if it does not exist. + +.. code-block:: bash + + mkdir tempest-artifacts + +The contents of ``tempest-artifacts`` will be overwritten. Ensure any previous +test results have been copied away. + +The Tempest playbook is invoked through the Kayobe container using this +command from the base of the ``kayobe-config`` directory: + +.. code-block:: bash + + sudo -E docker run --detach -it --rm --network host -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 -e ansible_user=stack + +By default, ``no_log`` is set to stop credentials from leaking. This can be +disabled by adding ``-e rally_no_sensitive_log=false`` to the end. + +To follow the progress of the Kayobe automation container, either remove +``--detach`` from the above command, or follow the docker logs of the +``kayobe`` container. + +To follow the progress of the Tempest tests themselves, follow the logs of the +``tempest`` container on the ``tempest_runner`` host. + +.. code-block:: bash + + ssh + sudo docker logs -f tempest + +Tempest will keep running until completion if the ``kayobe`` container is +stopped. The ``tempest`` container must be stopped manually. Doing so will +however stop test resources (such as networks, images, and VMs) from being +automatically cleaned up. They must instead be manually removed. They should be +clearly labeled with either rally or tempest in the name, often alongside some +randomly generated string. + +Outputs +------- + +Tempest outputs will be sent to the ``tempest-artifacts/`` directory. It +contain the following artifacts: + +- ``docker.log`` - The logs from the ``tempest`` docker container +- ``failed-tests`` - A simple list of tests that failed +- ``rally-junit.xml`` - An XML file listing all tests in the test list and + their status (skipped/succeeded/failed). Usually not useful. +- ``rally-verify-report.html`` - An HTML page with all test results including + an error trace for failed tests. It is often best to ``scp`` this file back + to your local machine to view it. This is the most user-friendly way to view + the test results, however can be awkward to host. +- ``rally-verify-report.json`` - A JSON blob with all test results including an + error trace for failed tests. It contains all the same data as the HTML + report but without formatting. +- ``stderr.log`` - The stderr log. Usually not useful. +- ``stdout.log`` - The stdout log. Usually not useful. +- ``tempest-load-list`` - The load list that Tempest was invoked with. +- ``tempest.log`` - Detailed logs from Tempest. Contains more data than the + ``verify`` reports, but can be difficult to parse. Useful for tracing specific + errors. From 0c2c43b4dcfbb4ac5239235d1e827a70a962a595 Mon Sep 17 00:00:00 2001 From: sd109 Date: Thu, 29 Feb 2024 09:40:04 +0000 Subject: [PATCH 06/16] Bump magnum-capi-helm version to latest --- etc/kayobe/kolla.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index 1a047f33c..8844a3cbd 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -415,7 +415,7 @@ kolla_build_blocks: magnum_base_footer: | RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | head -n -1 | bash {% raw %} - {% set magnum_capi_packages = ['git+https://github.com/stackhpc/magnum-capi-helm.git@v0.1.0'] %} + {% set magnum_capi_packages = ['git+https://github.com/stackhpc/magnum-capi-helm.git@v0.10.0'] %} RUN {{ macros.install_pip(magnum_capi_packages | customizable("pip_packages")) }} {% endraw %} # Dict mapping image customization variable names to their values. From 85ed3b58c6f932336d77067e14a68c4bbbb67ad2 Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Fri, 16 Feb 2024 10:24:46 +0100 Subject: [PATCH 07/16] Bump Magnum Bump magnum_tag - support for k8s 1.27 fc38 Calico installed with Helm: Tigera Operator --- etc/kayobe/kolla/globals.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 65e22705b..7386a67be 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -19,6 +19,10 @@ kayobe_image_tags: centos: yoga-20231107T165648 rocky: yoga-20231218T141822 ubuntu: yoga-20231107T165648 + magnum: + centos: yoga-20240214T151004 + rocky: yoga-20240214T151004 + ubuntu: yoga-20240214T151004 neutron: centos: yoga-20231114T125927 rocky: yoga-20240105T120257 From a291be12a87ee2501d42062c93c54c38bca871a7 Mon Sep 17 00:00:00 2001 From: scrungus Date: Thu, 29 Feb 2024 12:59:10 +0000 Subject: [PATCH 08/16] bump magnum tag --- etc/kayobe/kolla/globals.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 7386a67be..618e56ed8 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -20,9 +20,9 @@ kayobe_image_tags: rocky: yoga-20231218T141822 ubuntu: yoga-20231107T165648 magnum: - centos: yoga-20240214T151004 - rocky: yoga-20240214T151004 - ubuntu: yoga-20240214T151004 + centos: yoga-20240229T120519 + rocky: yoga-20240229T120519 + ubuntu: yoga-20240229T120519 neutron: centos: yoga-20231114T125927 rocky: yoga-20240105T120257 From 727fe74a6212ecd70ca83c8dabf18c238caf7240 Mon Sep 17 00:00:00 2001 From: scrungus Date: Thu, 29 Feb 2024 13:02:10 +0000 Subject: [PATCH 09/16] reno --- releasenotes/notes/bump-magnum-51e03a61ae8aa5a4.yaml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 releasenotes/notes/bump-magnum-51e03a61ae8aa5a4.yaml diff --git a/releasenotes/notes/bump-magnum-51e03a61ae8aa5a4.yaml b/releasenotes/notes/bump-magnum-51e03a61ae8aa5a4.yaml new file mode 100644 index 000000000..b28764800 --- /dev/null +++ b/releasenotes/notes/bump-magnum-51e03a61ae8aa5a4.yaml @@ -0,0 +1,3 @@ +--- +fixes: + - Updates Magnum CAPI Helm driver version to v0.10.0 From fc46ea4cec58d163357323747672ec6b31155a0e Mon Sep 17 00:00:00 2001 From: Jake Hutchinson Date: Thu, 29 Feb 2024 15:19:30 +0000 Subject: [PATCH 10/16] Fix os-capacity playbook crash on delegate_to --- etc/kayobe/ansible/deploy-os-capacity-exporter.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/etc/kayobe/ansible/deploy-os-capacity-exporter.yml b/etc/kayobe/ansible/deploy-os-capacity-exporter.yml index e5cde5676..8cff6a89e 100644 --- a/etc/kayobe/ansible/deploy-os-capacity-exporter.yml +++ b/etc/kayobe/ansible/deploy-os-capacity-exporter.yml @@ -1,15 +1,18 @@ --- -- hosts: monitoring +- name: Remove legacy os_exporter.cfg file + hosts: network gather_facts: false - tasks: - name: Ensure legacy os_exporter.cfg config file is deleted ansible.builtin.file: path: /etc/kolla/haproxy/services.d/os_exporter.cfg state: absent - delegate_to: network become: true +- name: Deploy os-capacity exporter + hosts: monitoring + gather_facts: false + tasks: - name: Create os-capacity directory ansible.builtin.file: path: /opt/kayobe/os-capacity/ From 3064fbea804a4d9fad26c003dbd9b0243d1acd08 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 27 Feb 2024 10:43:26 +0000 Subject: [PATCH 11/16] Improved AIO deployment script The automated AIO deployment script has been improved in several ways: The password check is now the first command to run Adds advice about running with non-lvm images The python3-venv package is installed on Ubuntu hosts The purge-command-not-found playbook is automatically run before host configuration --- .../environments/ci-aio/automated-setup.sh | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/etc/kayobe/environments/ci-aio/automated-setup.sh b/etc/kayobe/environments/ci-aio/automated-setup.sh index 9252bf35a..5129db015 100644 --- a/etc/kayobe/environments/ci-aio/automated-setup.sh +++ b/etc/kayobe/environments/ci-aio/automated-setup.sh @@ -2,30 +2,35 @@ set -eux -cat << EOF | sudo tee -a /etc/hosts -10.205.3.187 pulp-server pulp-server.internal.sms-cloud -EOF - -if sudo vgdisplay | grep -q lvm2; then - sudo pvresize $(sudo pvs --noheadings | head -n 1 | awk '{print $1}') - sudo lvextend -L 4G /dev/rootvg/lv_home -r || true - sudo lvextend -L 4G /dev/rootvg/lv_tmp -r || true -fi - BASE_PATH=~ KAYOBE_BRANCH=stackhpc/yoga KAYOBE_CONFIG_BRANCH=stackhpc/yoga +KAYOBE_AIO_LVM=true if [[ ! -f $BASE_PATH/vault-pw ]]; then echo "Vault password file not found at $BASE_PATH/vault-pw" exit 1 fi +if sudo vgdisplay | grep -q lvm2; then + sudo pvresize $(sudo pvs --noheadings | head -n 1 | awk '{print $1}') + sudo lvextend -L 4G /dev/rootvg/lv_home -r || true + sudo lvextend -L 4G /dev/rootvg/lv_tmp -r || true +elif $KAYOBE_AIO_LVM; then + echo "This environment is only designed for LVM images. If possible, switch to an LVM image. + To ignore this warning, set KAYOBE_AIO_LVM to false in this script." + exit 1 +fi + +cat << EOF | sudo tee -a /etc/hosts +10.205.3.187 pulp-server pulp-server.internal.sms-cloud +EOF + if type dnf; then sudo dnf -y install git else sudo apt update - sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 + sudo apt -y install gcc git libffi-dev python3-dev python-is-python3 python3-venv fi cd $BASE_PATH @@ -35,6 +40,11 @@ pushd src [[ -d kayobe-config ]] || git clone https://github.com/stackhpc/stackhpc-kayobe-config kayobe-config -b $KAYOBE_CONFIG_BRANCH popd +if ! sudo vgdisplay | grep -q lvm2; then + rm $BASE_PATH/src/kayobe-config/etc/kayobe/environments/ci-aio/inventory/group_vars/controllers/lvm.yml + sed -i -e '/controller_lvm_groups/,+2d' $BASE_PATH/src/kayobe-config/etc/kayobe/environments/ci-aio/controllers.yml +fi + mkdir -p venvs pushd venvs if [[ ! -d kayobe ]]; then @@ -68,7 +78,7 @@ source kayobe-env --environment ci-aio kayobe control host bootstrap -kayobe playbook run etc/kayobe/ansible/growroot.yml +kayobe playbook run etc/kayobe/ansible/growroot.yml etc/kayobe/ansible/purge-command-not-found.yml kayobe overcloud host configure From 47818f562f72d103097d31334a3a6567cfbd4db8 Mon Sep 17 00:00:00 2001 From: scrungus <33693738+scrungus@users.noreply.github.com> Date: Fri, 1 Mar 2024 09:48:55 +0000 Subject: [PATCH 12/16] magnum_tag --- etc/kayobe/kolla/globals.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 618e56ed8..419b1ba72 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -33,6 +33,7 @@ kayobe_image_tags: ubuntu: yoga-20231103T161400 cloudkitty_tag: "{% raw %}{{ kayobe_image_tags['cloudkitty'][kolla_base_distro] }}{% endraw %}" +magnum_tag: "{% raw %}{{ kayobe_image_tags['magnum'][kolla_base_distro] }}{% endraw %}" neutron_tag: "{% raw %}{{ kayobe_image_tags['neutron'][kolla_base_distro] }}{% endraw %}" nova_tag: "{% raw %}{{ kayobe_image_tags['nova'][kolla_base_distro] }}{% endraw %}" opensearch_tag: yoga-20231219T221916 From 564a20a3ba091feeec304f95fdfd9d5dfaa42edf Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 1 Mar 2024 10:03:06 +0000 Subject: [PATCH 13/16] docs: Update microversions in tempest.conf example for Zed --- doc/source/operations/tempest.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/source/operations/tempest.rst b/doc/source/operations/tempest.rst index 82135adf9..a3bd4ac1c 100644 --- a/doc/source/operations/tempest.rst +++ b/doc/source/operations/tempest.rst @@ -176,7 +176,7 @@ you understand all the options before applying them. min_compute_nodes = 2 # Required to test some API features min_microversion = 2.1 - max_microversion = 2.90 + max_microversion = 2.93 # Flavors for creating test servers and server resize. The ``alt`` flavor should be larger. flavor_ref = flavor_ref_alt = @@ -190,14 +190,14 @@ you understand all the options before applying them. volume_backed_live_migration = true [placement] - min_microversion = "1.0" - max_microversion = "1.39" + min_microversion = 1.0 + max_microversion = 1.39 [volume] storage_protocol = ceph # Required to test some API features min_microversion = 3.0 - max_microversion = 3.68 + max_microversion = 3.70 Tempest configuration override files are stored in ``.automation.conf/tempest/``. The default file used is From 068b668acdcf105d6d0037ecc65ec91fc20e137a Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 1 Mar 2024 10:04:26 +0000 Subject: [PATCH 14/16] Update magnum container images for Zed --- etc/kayobe/kolla-image-tags.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/kayobe/kolla-image-tags.yml b/etc/kayobe/kolla-image-tags.yml index 5cd94a2c3..a264fdbf1 100644 --- a/etc/kayobe/kolla-image-tags.yml +++ b/etc/kayobe/kolla-image-tags.yml @@ -6,6 +6,9 @@ kolla_image_tags: openstack: rocky-9: zed-rocky-9-20240202T105829 ubuntu-jammy: zed-ubuntu-jammy-20240129T151534 + magnum: + rocky-9: zed-rocky-9-20240301T100039 + ubuntu-jammy: zed-ubuntu-jammy-20240301T100039 neutron: rocky-9: zed-rocky-9-20240202T141530 ubuntu-jammy: zed-ubuntu-jammy-20240202T143208 From 21dbda597e73ede719d07337915ce17b0ecf9e65 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 1 Mar 2024 10:10:40 +0000 Subject: [PATCH 15/16] docs: Update microversions in tempest.conf example for 2023.1 --- doc/source/operations/tempest.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/operations/tempest.rst b/doc/source/operations/tempest.rst index a3bd4ac1c..f61933198 100644 --- a/doc/source/operations/tempest.rst +++ b/doc/source/operations/tempest.rst @@ -176,7 +176,7 @@ you understand all the options before applying them. min_compute_nodes = 2 # Required to test some API features min_microversion = 2.1 - max_microversion = 2.93 + max_microversion = 2.95 # Flavors for creating test servers and server resize. The ``alt`` flavor should be larger. flavor_ref = flavor_ref_alt = From 2d97d59ba7f237a095293dc6872ed89841fcaffc Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 1 Mar 2024 10:11:10 +0000 Subject: [PATCH 16/16] Update magnum container images for 2023.1 Co-Authored-By: Scott Davidson --- etc/kayobe/kolla-image-tags.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/kayobe/kolla-image-tags.yml b/etc/kayobe/kolla-image-tags.yml index ab46cb4cc..9358037cf 100644 --- a/etc/kayobe/kolla-image-tags.yml +++ b/etc/kayobe/kolla-image-tags.yml @@ -12,6 +12,9 @@ kolla_image_tags: letsencrypt: rocky-9: 2023.1-rocky-9-20240205T162323 ubuntu-jammy: 2023.1-ubuntu-jammy-20240221T133905 + magnum: + rocky-9: 2023.1-rocky-9-20240229T103619 + ubuntu-jammy: 2023.1-ubuntu-jammy-20240229T103619 neutron: rocky-9: 2023.1-rocky-9-20240202T145927 ubuntu-jammy: 2023.1-ubuntu-jammy-20240221T103817