Skip to content

Resync with Caracal #1686

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 68 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
85049b1
Bump kolla to stackhpc/18.6.0.8
stackhpc-ci May 6, 2025
6a6ba1f
Merge branch 'stackhpc/2024.1' into update-dependency/kolla/stackhpc/…
Alex-Welsh May 7, 2025
c786f88
Merge branch 'stackhpc/2024.1' into update-dependency/kolla/stackhpc/…
Alex-Welsh May 9, 2025
027eea0
Fix Neutron endpoint used in Octavia OVN provider
priteau May 9, 2025
681169d
Fix whitespace issues
Alex-Welsh May 9, 2025
4b9eed0
Merge pull request #1635 from stackhpc/update-dependency/kolla/stackh…
Alex-Welsh May 9, 2025
e4ce7a9
Merge pull request #1638 from stackhpc/ovn-octavia-provider-caracal
Alex-Welsh May 9, 2025
a068f1b
Merge pull request #1639 from stackhpc/whitespace
Alex-Welsh May 9, 2025
b4fe805
fix: add missing `openbao` distribution
jackhodgkiss May 9, 2025
4834cf6
Merge pull request #1640 from stackhpc/fix-missing-openbao-distro
jackhodgkiss May 9, 2025
9202db2
Kolla-Ansible/Kayobe version enforcement (#1551)
assumptionsandg May 12, 2025
39e7e8a
CI: Remove Ubuntu OVS, add RL9 OVS upgrade cases
Alex-Welsh May 12, 2025
d8b266f
Fix duplicate metrics from radosgw_usage_exporter
MoteHue May 12, 2025
76c76c9
Merge pull request #1642 from stackhpc/fix-radosgw-usage-exporter-dup…
MoteHue May 12, 2025
a6f6de6
Bump kolla-ansible to stackhpc/18.6.0.9
stackhpc-ci May 13, 2025
e530be8
Bump kolla to stackhpc/18.6.0.9
stackhpc-ci May 13, 2025
3712a4b
Merge pull request #1641 from stackhpc/ubuntu-ovs-2024.1
Alex-Welsh May 13, 2025
fbb4acc
Merge branch 'stackhpc/2024.1' into update-dependency/kolla-ansible/s…
Alex-Welsh May 13, 2025
63635a5
Merge branch 'stackhpc/2024.1' into update-dependency/kolla/stackhpc/…
Alex-Welsh May 13, 2025
58fd699
Merge pull request #1644 from stackhpc/update-dependency/kolla-ansibl…
Alex-Welsh May 13, 2025
6e720be
Merge pull request #1645 from stackhpc/update-dependency/kolla/stackh…
Alex-Welsh May 13, 2025
61011bf
Make SMS the default runner environment
MaxBed4d May 14, 2025
d3628ef
Add environment variables and secrets
MaxBed4d May 14, 2025
90b8f10
Set VM flavour based on env vars
MaxBed4d May 14, 2025
a812b7c
Fix PCI passthrough default templates
seunghun1ee May 14, 2025
4cc75d1
Merge pull request #1648 from stackhpc/fix-pci-default-template
seunghun1ee May 15, 2025
40240f9
Merge pull request #1649 from stackhpc/zed-utils
Alex-Welsh May 15, 2025
5a71efa
Merge pull request #1652 from stackhpc/cherry-pick-f14616-stackhpc/20…
Alex-Welsh May 15, 2025
67961f9
CI: Avoid dependency updates in forks
priteau May 15, 2025
f08cc5a
Merge pull request #1654 from stackhpc/update-dependencies-stackhpc-only
Alex-Welsh May 15, 2025
45d731d
Var to set upgrade AiOs to Leafcloud
MaxBed4d May 16, 2025
64da1b1
fix: use `rabbitmq` length for `RabbitMQNodeDown` (#1579)
jackhodgkiss May 19, 2025
ffbf780
Bump kayobe to stackhpc/16.6.0.5
stackhpc-ci May 20, 2025
7aee438
Bump kolla-ansible to stackhpc/18.6.0.10
stackhpc-ci May 20, 2025
f8ae750
Merge pull request #1658 from stackhpc/update-dependency/kayobe/stack…
Alex-Welsh May 20, 2025
9bdf4f6
Merge branch 'stackhpc/2024.1' into update-dependency/kolla-ansible/s…
Alex-Welsh May 20, 2025
f83ae51
Merge pull request #1657 from stackhpc/update-dependency/kolla-ansibl…
Alex-Welsh May 20, 2025
a9b8224
Merge pull request #1646 from stackhpc/arc-aio
Alex-Welsh May 20, 2025
aeba2ef
Set check_mode to false for Kayobe/Kolla-Ansible version checks
assumptionsandg May 22, 2025
902e393
Bump magnum-capi-helm
Alex-Welsh May 22, 2025
4aeeb0e
Merge pull request #1667 from stackhpc/disable-check-mode-version-check
jovial May 22, 2025
cc10a8b
Bump Ceph Reef container image to v18.2.7
priteau May 26, 2025
42be8f4
Merge pull request #1669 from stackhpc/bump-ceph-reef
Alex-Welsh May 29, 2025
03452e7
bump ovs/ovn in RL9 in caracal
bbezak May 29, 2025
4173e58
Merge branch 'stackhpc/2024.1' into 2024.1-bump-ovs/ovn
bbezak May 29, 2025
e2a3df6
Merge pull request #1668 from stackhpc/bump-capi
Alex-Welsh May 29, 2025
0fd51f5
Merge branch 'stackhpc/2024.1' into 2024.1-bump-ovs/ovn
bbezak May 29, 2025
bd7a576
Merge pull request #1670 from stackhpc/2024.1-bump-ovs/ovn
bbezak May 30, 2025
ed21759
Fix release note link format
Alex-Welsh May 30, 2025
700704c
fix: do not attempt to install `python3-venv` on non `Ubuntu` systems
jackhodgkiss May 30, 2025
0e9d0c6
Merge pull request #1674 from stackhpc/reno-format
priteau May 30, 2025
c011884
Merge branch 'stackhpc/2024.1' into smartmon-rl9-fix
jackhodgkiss May 31, 2025
d6a8981
Prometheus: Remove build overrides
cityofships Feb 19, 2025
84ad0cb
Bump up Prometheus image tag
cityofships Feb 3, 2025
7413635
Merge pull request #1534 from stackhpc/2024.1_bump_exporters
Alex-Welsh Jun 2, 2025
becb4e7
Merge pull request #1675 from stackhpc/smartmon-rl9-fix
jackhodgkiss Jun 2, 2025
bb093ca
CI: Add upstream-sync workflow
priteau Jun 3, 2025
c2620d6
Merge pull request #1678 from stackhpc/skc-upstream-sync
Alex-Welsh Jun 3, 2025
5ae9d02
CI: Fix workflow syntax error
priteau Jun 3, 2025
5d5fac1
Merge pull request #1679 from stackhpc/skc-upstream-sync
Alex-Welsh Jun 3, 2025
712030c
Add an option to append content to Ceph configs
m-bull Jun 3, 2025
b2bb217
CI: Configure upstream repository to use for sync
priteau Jun 4, 2025
d97ede4
Merge pull request #1681 from stackhpc/skc-upstream-sync
Alex-Welsh Jun 5, 2025
cb45c4c
Merge pull request #1680 from stackhpc/ceph-conf-custom-config
Alex-Welsh Jun 5, 2025
47d7ccd
docs: fix link to IPA upstream documentation
priteau Jun 5, 2025
e3f50f4
Merge pull request #1682 from stackhpc/doc-fix
Alex-Welsh Jun 5, 2025
88786d6
feat: add `stack` user for `Pulp`
jackhodgkiss Jun 5, 2025
9576517
Merge pull request #1683 from stackhpc/pulp-stack-user
Alex-Welsh Jun 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .ansible-lint-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion .github/workflows/runner-selector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
43 changes: 17 additions & 26 deletions .github/workflows/stackhpc-all-in-one.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ name: All in one
on:
workflow_call:
inputs:
runner:
required: false
runner_env:
description: Which cloud to run on?
type: string
description: 'Runner name'
default: 'arc-skc-aio-runner'
default: SMS Lab
kayobe_image:
description: Kayobe container image
type: string
Expand Down Expand Up @@ -40,18 +39,6 @@ on:
description: Default network interface name
type: string
default: ens3
vm_flavor:
description: Flavor for the all-in-one VM
type: string
default: en1.medium
vm_network:
description: Network for the all-in-one VM
type: string
default: stackhpc-ci
vm_subnet:
description: Subnet for the all-in-one VM
type: string
default: stackhpc-ci
OS_CLOUD:
description: Name of cloud in clouds.yaml
type: string
Expand Down Expand Up @@ -87,11 +74,18 @@ on:
required: true

jobs:
runner-selection:
uses: ./.github/workflows/runner-selector.yml
with:
runner_env: ${{ inputs.upgrade == true && 'Leafcloud' || inputs.runner_env }}
# NOTE: Runner needs unzip and nodejs packages.
all-in-one:
name: All in one
if: ${{ inputs.if && !cancelled() }}
runs-on: ${{ inputs.runner }}
environment: ${{ inputs.upgrade == true && 'Leafcloud' || inputs.runner_env }}
runs-on: ${{ needs.runner-selection.outputs.runner_name_aio }}
needs:
- runner-selection
permissions: {}
env:
KAYOBE_ENVIRONMENT: ci-aio
Expand Down Expand Up @@ -170,9 +164,9 @@ jobs:
aio_vm_interface = "${{ env.VM_INTERFACE }}"
aio_vm_name = "${{ env.VM_NAME }}"
aio_vm_image = "${{ env.VM_IMAGE }}"
aio_vm_flavor = "${{ env.VM_FLAVOR }}"
aio_vm_network = "${{ env.VM_NETWORK }}"
aio_vm_subnet = "${{ env.VM_SUBNET }}"
aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }}"
aio_vm_network = "${{ vars.HOST_IMAGE_BUILD_NETWORK }}"
aio_vm_subnet = "${{ vars.HOST_IMAGE_BUILD_SUBNET }}"
aio_vm_volume_size = "${{ env.VM_VOLUME_SIZE }}"
aio_vm_tags = ${{ env.VM_TAGS }}
EOF
Expand All @@ -181,9 +175,6 @@ jobs:
SSH_USERNAME: "${{ inputs.ssh_username }}"
VM_NAME: "skc-ci-aio-${{ inputs.neutron_plugin }}-${{ github.run_id }}"
VM_IMAGE: ${{ steps.image_name.outputs.image_name }}
VM_FLAVOR: ${{ inputs.vm_flavor }}
VM_NETWORK: ${{ inputs.vm_network }}
VM_SUBNET: ${{ inputs.vm_subnet }}
VM_INTERFACE: ${{ inputs.vm_interface }}
VM_VOLUME_SIZE: ${{ inputs.upgrade && '65' || '50' }}
VM_TAGS: '["skc-ci-aio", "PR=${{ github.event.number }}"]'
Expand All @@ -192,7 +183,7 @@ jobs:
run: terraform plan
working-directory: ${{ github.workspace }}/terraform/aio
env:
OS_CLOUD: ${{ inputs.OS_CLOUD }}
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}

Expand All @@ -213,7 +204,7 @@ jobs:
exit 1
working-directory: ${{ github.workspace }}/terraform/aio
env:
OS_CLOUD: ${{ inputs.OS_CLOUD }}
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}

Expand Down Expand Up @@ -517,7 +508,7 @@ jobs:
run: terraform destroy -auto-approve
working-directory: ${{ github.workspace }}/terraform/aio
env:
OS_CLOUD: ${{ inputs.OS_CLOUD }}
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
if: always()
60 changes: 22 additions & 38 deletions .github/workflows/stackhpc-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,23 +130,6 @@ jobs:
secrets: inherit
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

all-in-one-ubuntu-jammy-ovs:
name: aio (Ubuntu Jammy 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: jammy
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-jammy-ovn:
name: aio (Ubuntu Jammy OVN)
needs:
Expand All @@ -164,23 +147,6 @@ jobs:
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:
Expand Down Expand Up @@ -232,10 +198,10 @@ jobs:
secrets: inherit
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

# Test two upgrade scenarios: Ubuntu Jammy OVS and Rocky 9 OVN.
# Test upgrade scenarios

all-in-one-upgrade-ubuntu-jammy-ovs:
name: aio upgrade (Ubuntu Jammy OVS)
all-in-one-upgrade-ubuntu-jammy-ovn:
name: aio upgrade (Ubuntu Jammy OVN)
needs:
- check-changes
- build-kayobe-image
Expand All @@ -245,7 +211,7 @@ jobs:
os_distribution: ubuntu
os_release: jammy
ssh_username: ubuntu
neutron_plugin: ovs
neutron_plugin: ovn
OS_CLOUD: openstack
if: ${{ needs.check-changes.outputs.aio == 'true' }}
upgrade: true
Expand All @@ -269,3 +235,21 @@ jobs:
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' }}
1 change: 1 addition & 0 deletions .github/workflows/update-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:

jobs:
propose_github_release_updates:
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
runs-on: ubuntu-22.04
strategy:
matrix:
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/upstream-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Upstream Sync
'on':
schedule:
- cron: "15 8 * * 1"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
synchronise-2023-1:
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
name: Synchronise 2023.1
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
with:
release_series: 2023.1
upstream: openstack/kayobe-config
synchronise-2024-1:
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
name: Synchronise 2024.1
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
with:
release_series: 2024.1
upstream: openstack/kayobe-config
synchronise-2025-1:
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
name: Synchronise 2025.1
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
with:
release_series: 2025.1
upstream: openstack/kayobe-config
synchronise-master:
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
name: Synchronise master
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
with:
release_series: master
upstream: openstack/kayobe-config
2 changes: 1 addition & 1 deletion doc/source/configuration/ipa.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ StackHPC provides prebuilt Ironic Python Agent (IPA) images in Release Train
through Ark.

These images are built in CI using a GitHub workflow and are configured in this
repository. See :kayobe-doc: `Kayobe documentation
repository. See :kayobe-doc:`Kayobe documentation
<configuration/reference/ironic-python-agent.html>` for more details on IPA.

Release Train IPA images are used by Bifrost and Overcloud Ironic by default in
Expand Down
33 changes: 23 additions & 10 deletions doc/source/configuration/release-train.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,29 @@ The Pulp container is deployed on the seed by default, but may be disabled by
setting ``seed_pulp_container_enabled`` to ``false`` in
``etc/kayobe/seed.yml``.

The URL and credentials of the local Pulp server are configured in
``etc/kayobe/pulp.yml`` via ``pulp_url``, ``pulp_username`` and
``pulp_password``. In most cases, the default values should be sufficient.
An admin password must be generated and set as the value of a
``secrets_pulp_password`` variable, typically in an Ansible Vault encrypted
``etc/kayobe/secrets.yml`` file. This password will be automatically set on
Pulp startup.

If a proxy is required to access the Internet from the seed, ``pulp_proxy_url``
may be used.
The URL for the local Pulp server is configured by ``pulp_url`` within
``etc/kayobe/pulp.yml``.

The Pulp service can be configured with two sets of credentials; one for
administrator operations and another read-only for overcloud hosts
to use.
The administrator credentials can be configured ``pulp_username``,
``pulp_password``
The basic user account credentials can be configured with ``pulp_stack_username``
and ``pulp_stack_password``.
Both sets of credentials can be found within ``etc/kayobe/pulp.yml``.

Both the ``pulp_password`` and ``pulp_stack_password`` are intended to be
configured via their ``secrets_*`` counterparts, i.e.
``secrets_pulp_password`` and ``secrets_pulp_stack_password``. These variables
are expected to be set in an Ansible Vault encrypted
``etc/kayobe/secrets.yml`` file.

Passwords can be generated using ``OpenSSL``

.. code-block:: console

openssl rand -base64 32

Host images are not synchronised to the local Pulp server, since they should
only be pulled to the seed node once. More information on host images can be
Expand Down
1 change: 1 addition & 0 deletions etc/kayobe/ansible/cephadm-gather-keys.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
# Kolla Ansible's merge_configs module does not like the leading tabs in ceph.conf.
content: |
{{ cephadm_ceph_conf.stdout | regex_replace('\t') }}
{{ kolla_ceph_conf_append if kolla_ceph_conf_append is defined }}
dest: "{{ kayobe_env_config_path }}/kolla/config/{{ kolla_service_to_conf_dir[item.0.name] }}/ceph.conf"
loop: "{{ query('subelements', kolla_ceph_services | selectattr('required'), 'keys') }}"
loop_control:
Expand Down
62 changes: 62 additions & 0 deletions etc/kayobe/ansible/check-kayobe-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
- 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
check_mode: false
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 }}
Loading
Loading