Skip to content

Commit 662ad24

Browse files
authored
Merge branch 'stackhpc/2024.1' into kolla-config-alex
2 parents f42d42c + 3381a58 commit 662ad24

File tree

70 files changed

+310
-263
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+310
-263
lines changed

.automation.conf/tempest/tempest-ci-multinode.overrides.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ v3_endpoint_type = publicURL
1010
[compute]
1111
min_compute_nodes = 2
1212
min_microversion = 2.1
13-
max_microversion = 2.95
13+
max_microversion = 2.96
1414

1515
[service-clients]
1616
http_timeout = 600
@@ -26,7 +26,7 @@ console_output = true
2626
storage_protocol = ceph
2727
build_timeout = 600
2828
min_microversion = 3.0
29-
max_microversion = 3.70
29+
max_microversion = 3.71
3030

3131
[image]
3232
build_timeout = 600

.github/workflows/overcloud-host-image-build.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,14 @@ jobs:
6767
run: |
6868
echo "${{ steps.host_image_tag.outputs.host_image_tag }}"
6969
70-
- name: Clone StackHPC Kayobe repository
71-
uses: actions/checkout@v4
72-
with:
73-
repository: stackhpc/kayobe
74-
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
75-
path: src/kayobe
76-
7770
- name: Install Kayobe
7871
run: |
7972
mkdir -p venvs &&
8073
pushd venvs &&
8174
python3 -m venv kayobe &&
8275
source kayobe/bin/activate &&
8376
pip install -U pip &&
84-
pip install ../src/kayobe
77+
pip install ../src/kayobe-config/requirements.txt
8578
8679
- name: Install terraform
8780
uses: hashicorp/setup-terraform@v2

.github/workflows/overcloud-host-image-promote.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,6 @@ jobs:
3434
echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT
3535
working-directory: src/kayobe-config
3636

37-
- name: Clone StackHPC Kayobe repository
38-
uses: actions/checkout@v4
39-
with:
40-
repository: stackhpc/kayobe
41-
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
42-
path: src/kayobe
43-
4437
- name: Setup networking
4538
run: |
4639
if ! ip l show breth1 >/dev/null 2>&1; then
@@ -63,7 +56,7 @@ jobs:
6356
python3 -m venv kayobe &&
6457
source kayobe/bin/activate &&
6558
pip install -U pip &&
66-
pip install ../src/kayobe
59+
pip install ../src/kayobe-config/requirements.txt
6760
6861
- name: Bootstrap the control host
6962
run: |

.github/workflows/overcloud-host-image-upload.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,14 @@ jobs:
4949
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' src/kayobe-config/.gitreview)
5050
echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT
5151
52-
- name: Clone StackHPC Kayobe repository
53-
uses: actions/checkout@v4
54-
with:
55-
repository: stackhpc/kayobe
56-
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
57-
path: src/kayobe
58-
5952
- name: Install Kayobe
6053
run: |
6154
mkdir -p venvs &&
6255
pushd venvs &&
6356
python3 -m venv kayobe &&
6457
source kayobe/bin/activate &&
6558
pip install -U pip &&
66-
pip install ../src/kayobe
59+
pip install ../src/kayobe-config/requirements.txt
6760
6861
- name: Bootstrap the control host
6962
run: |

.github/workflows/stackhpc-all-in-one.yml

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,28 @@ jobs:
264264
run: |
265265
docker image pull $KAYOBE_IMAGE
266266
267+
# Rocky 9 OVN deployments will fail when the hostname contains a '.'
268+
- name: Fix hostname
269+
run: |
270+
docker run -t --rm \
271+
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
272+
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
273+
${{ steps.kayobe_image.outputs.kayobe_image }} \
274+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh etc/kayobe/ansible/fix-hostname.yml
275+
env:
276+
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
277+
278+
# Reboot to Apply hostname change
279+
- name: Reboot
280+
run: |
281+
docker run -t --rm \
282+
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
283+
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
284+
${{ steps.kayobe_image.outputs.kayobe_image }} \
285+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh etc/kayobe/ansible/reboot.yml -e reboot_with_bootstrap_user=true
286+
env:
287+
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
288+
267289
- name: Run growroot
268290
run: |
269291
docker run -t --rm \
@@ -304,10 +326,29 @@ jobs:
304326
env:
305327
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
306328

329+
- name: Change rabbit queues from HA to Quorum
330+
run: |
331+
sed -i -e 's/om_enable_rabbitmq_high_availability: true/om_enable_rabbitmq_high_availability: false/' \
332+
-e 's/om_enable_rabbitmq_quorum_queues: false/om_enable_rabbitmq_quorum_queues: true/' \
333+
etc/kayobe/environments/ci-aio/kolla/globals.yml
334+
if: inputs.upgrade
335+
336+
- name: Migrate RabbitMQ queues
337+
run: |
338+
docker run -t --rm \
339+
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
340+
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
341+
${{ steps.kayobe_image.outputs.kayobe_image }} \
342+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/script-run.sh tools/rabbitmq-quorum-migration.sh
343+
env:
344+
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
345+
if: inputs.upgrade
346+
307347
# If testing upgrade, checkout the current release branch
308348
# Stash changes to tracked files, and set clean=false to avoid removing untracked files.
349+
# Revert changes to RabbitMQ Queue types to avoid a merge conflict
309350
- name: Stash config changes
310-
run: git stash
351+
run: git restore etc/kayobe/environments/ci-aio/kolla/globals.yml && git stash
311352
if: inputs.upgrade
312353

313354
- name: Checkout current release config

.github/workflows/stackhpc-build-kayobe-image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
build-kayobe-image:
4343
name: Build kayobe image
4444
if: inputs.if || github.repository == 'stackhpc/stackhpc-kayobe-config' && github.event_name == 'push'
45-
runs-on: ubuntu-20.04
45+
runs-on: ubuntu-22.04
4646
permissions:
4747
contents: read
4848
packages: write

.github/workflows/stackhpc-container-image-build.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,6 @@ jobs:
120120
with:
121121
path: src/kayobe-config
122122

123-
- name: Clone StackHPC Kayobe repository
124-
uses: actions/checkout@v4
125-
with:
126-
repository: stackhpc/kayobe
127-
ref: refs/heads/stackhpc/${{ needs.generate-tag.outputs.openstack_release }}
128-
path: src/kayobe
129-
130123
- name: Make sure dockerd is running and test Docker
131124
run: |
132125
docker ps
@@ -146,7 +139,7 @@ jobs:
146139
python3 -m venv kayobe &&
147140
source kayobe/bin/activate &&
148141
pip install -U pip &&
149-
pip install ../src/kayobe
142+
pip install ../src/kayobe-config/requirements.txt
150143
151144
# Required for Pulp auth proxy deployment and Docker registry login.
152145
# Normally installed during host configure.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
# This workflow provides a workflow_dispatch (manual) trigger to deploy a
3+
# multi-node test cluster.
4+
5+
name: Multinode
6+
'on':
7+
workflow_dispatch:
8+
# NOTE: workflow_dispatch is limited to 10 inputs.
9+
inputs:
10+
multinode_name:
11+
description: Multinode cluster name
12+
type: string
13+
required: true
14+
os_distribution:
15+
description: Host OS distribution
16+
type: choice
17+
default: rocky
18+
options:
19+
- rocky
20+
- ubuntu
21+
neutron_plugin:
22+
description: Neutron ML2 plugin
23+
type: choice
24+
default: ovn
25+
options:
26+
- ovn
27+
- ovs
28+
upgrade:
29+
description: Whether to perform an upgrade
30+
type: boolean
31+
default: false
32+
break_on:
33+
description: When to break execution for manual interaction
34+
type: choice
35+
default: never
36+
options:
37+
- always
38+
- failure
39+
- never
40+
- success
41+
break_duration:
42+
description: How long to break execution for (minutes)
43+
type: number
44+
default: 60
45+
ssh_key:
46+
description: SSH public key to authorise on Ansible control host
47+
type: string
48+
terraform_kayobe_multinode_version:
49+
description: terraform-kayobe-multinode version
50+
type: string
51+
default: main
52+
jobs:
53+
multinode:
54+
name: Multinode
55+
uses: stackhpc/stackhpc-openstack-gh-workflows/.github/workflows/[email protected]
56+
with:
57+
multinode_name: ${{ inputs.multinode_name }}
58+
os_distribution: ${{ inputs.os_distribution }}
59+
os_release: ${{ inputs.os_distribution == 'rocky' && '9' || 'jammy' }}
60+
ssh_username: ${{ inputs.os_distribution == 'rocky' && 'cloud-user' || 'ubuntu' }}
61+
neutron_plugin: ${{ inputs.neutron_plugin }}
62+
upgrade: ${{ inputs.upgrade }}
63+
break_on: ${{ inputs.break_on }}
64+
# Workaround loss of number type using fromJSON: https://github.com/orgs/community/discussions/67182
65+
break_duration: ${{ fromJSON(inputs.break_duration) }}
66+
ssh_key: ${{ inputs.ssh_key }}
67+
stackhpc_kayobe_config_version: ${{ github.ref_name }}
68+
# NOTE(upgrade): Reference the PREVIOUS release here.
69+
stackhpc_kayobe_config_previous_version: stackhpc/2023.1
70+
terraform_kayobe_multinode_version: ${{ inputs.terraform_kayobe_multinode_version }}
71+
secrets: inherit

.github/workflows/stackhpc-pull-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
# would skip the workflow entirely, and would prevent us from making the
1414
# aio jobs required to pass (a skip counts as a pass).
1515
check-changes:
16-
runs-on: ubuntu-20.04
16+
runs-on: ubuntu-22.04
1717
permissions:
1818
pull-requests: read
1919
name: Check changed files

0 commit comments

Comments
 (0)