Skip to content

Commit 4b6a1cb

Browse files
authored
Merge branch 'stackhpc/yoga' into bugfix/yoga/growroot-software-raid
2 parents f6e04a7 + 95fbf7a commit 4b6a1cb

File tree

170 files changed

+5330
-687
lines changed

Some content is hidden

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

170 files changed

+5330
-687
lines changed

.automation.conf/config.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ if [ ! -z ${KAYOBE_ENVIRONMENT:+x} ]; then
2424
# SMSLab is currently running with 1G switches. This causes tests using volumes and images to fail if
2525
# the concurrency is set too high.
2626
export TEMPEST_CONCURRENCY=1
27+
export KAYOBE_AUTOMATION_TEMPEST_SKIPLIST="ci-multinode-platform.2022.11"
2728
# Uncomment this to perform a full tempest test
2829
# export KAYOBE_AUTOMATION_TEMPEST_LOADLIST=tempest-full
2930
# export KAYOBE_AUTOMATION_TEMPEST_SKIPLIST=ci-multinode-tempest-full
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_pagination: "Fails without public TLS"
2+
tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_details_pagination: "Fails without public TLS"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_pagination: "Fails without public TLS"
2+
tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_details_pagination: "Fails without public TLS"
13
tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details.*: "Cirros image doesn't have '/var/run/udhcpc.eth0.pid"

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

Lines changed: 241 additions & 163 deletions
Large diffs are not rendered by default.

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,21 @@ jobs:
3333
overcloud-host-image-promote:
3434
name: Promote overcloud host image
3535
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
36-
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder]
36+
runs-on: ubuntu-22.04
3737
steps:
38-
- uses: actions/checkout@v3
38+
- uses: actions/checkout@v4
3939
with:
4040
path: src/kayobe-config
4141

4242
- name: Determine OpenStack release
4343
id: openstack_release
4444
run: |
4545
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' .gitreview)
46-
echo "openstack_release=${BRANCH}" | sed "s|stable/||" >> $GITHUB_OUTPUT
46+
echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT
47+
working-directory: src/kayobe-config
4748

4849
- name: Clone StackHPC Kayobe repository
49-
uses: actions/checkout@v3
50+
uses: actions/checkout@v4
5051
with:
5152
repository: stackhpc/kayobe
5253
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
Lines changed: 320 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,320 @@
1+
---
2+
name: Upload overcloud host images
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
centos:
7+
description: Upload CentOS Stream 8
8+
type: boolean
9+
default: true
10+
rocky8:
11+
description: Upload Rocky Linux 8
12+
type: boolean
13+
default: true
14+
rocky9:
15+
description: Upload Rocky Linux 9
16+
type: boolean
17+
default: true
18+
ubuntu-focal:
19+
description: Upload Ubuntu 20.04 Focal
20+
type: boolean
21+
default: true
22+
ubuntu-jammy:
23+
description: Upload Ubuntu 22.04 Jammy
24+
type: boolean
25+
default: true
26+
kayobe-environment:
27+
description: Kayobe environment to use
28+
type: string
29+
default: "ci-builder"
30+
secrets:
31+
KAYOBE_VAULT_PASSWORD:
32+
required: true
33+
CLOUDS_YAML:
34+
required: true
35+
OS_APPLICATION_CREDENTIAL_ID:
36+
required: true
37+
OS_APPLICATION_CREDENTIAL_SECRET:
38+
required: true
39+
40+
env:
41+
ANSIBLE_FORCE_COLOR: True
42+
jobs:
43+
overcloud-host-image-upload:
44+
name: Upload overcloud host images
45+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
46+
runs-on: arc-skc-host-image-builder-runner
47+
permissions: {}
48+
steps:
49+
- name: Install package dependencies
50+
run: |
51+
sudo apt update
52+
sudo apt install -y build-essential git unzip nodejs python3-wheel python3-pip python3-venv
53+
54+
- uses: actions/checkout@v4
55+
with:
56+
path: src/kayobe-config
57+
58+
- name: Determine OpenStack release
59+
id: openstack_release
60+
run: |
61+
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' src/kayobe-config/.gitreview)
62+
echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT
63+
64+
- name: Clone StackHPC Kayobe repository
65+
uses: actions/checkout@v4
66+
with:
67+
repository: stackhpc/kayobe
68+
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
69+
path: src/kayobe
70+
71+
- name: Install Kayobe
72+
run: |
73+
mkdir -p venvs &&
74+
pushd venvs &&
75+
python3 -m venv kayobe &&
76+
source kayobe/bin/activate &&
77+
pip install -U pip &&
78+
pip install ../src/kayobe
79+
80+
- name: Bootstrap the control host
81+
run: |
82+
source venvs/kayobe/bin/activate &&
83+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
84+
kayobe control host bootstrap --skip-tags bootstrap
85+
86+
- name: Generate clouds.yaml
87+
run: |
88+
cat << EOF > clouds.yaml
89+
${{ secrets.CLOUDS_YAML }}
90+
EOF
91+
92+
- name: Install OpenStack client
93+
run: |
94+
source venvs/kayobe/bin/activate &&
95+
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/${{ steps.openstack_release.outputs.openstack_release }}
96+
97+
- name: Output CentOS Stream 8 image tag
98+
id: centos_8_stream_image_tag
99+
run: |
100+
echo image_tag=$(grep stackhpc_centos_8_stream_overcloud_host_image_version: src/kayobe-config/etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
101+
102+
- name: Check if image exists already
103+
id: centos_8_stream_image_exists
104+
run: |
105+
source venvs/kayobe/bin/activate &&
106+
openstack image show \
107+
overcloud-centos-8-stream-${{ steps.centos_8_stream_image_tag.outputs.image_tag }}
108+
env:
109+
OS_CLOUD: openstack
110+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
111+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
112+
continue-on-error: true
113+
114+
- name: Download CentOS Stream 8 overcloud host image from Ark
115+
run: |
116+
source venvs/kayobe/bin/activate &&
117+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
118+
kayobe playbook run \
119+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
120+
-e os_distribution="centos" \
121+
-e os_release="8-stream"
122+
env:
123+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
124+
if: inputs.centos && steps.centos_8_stream_image_exists.outcome == 'failure'
125+
126+
- name: Upload CentOS Stream 8 overcloud host image to Cloud
127+
run: |
128+
source venvs/kayobe/bin/activate &&
129+
openstack image create \
130+
overcloud-centos-8-stream-${{ steps.centos_8_stream_image_tag.outputs.image_tag }} \
131+
--container-format bare \
132+
--disk-format qcow2 \
133+
--file /tmp/centos-8-stream.qcow2 \
134+
--private \
135+
--progress
136+
env:
137+
OS_CLOUD: openstack
138+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
139+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
140+
if: inputs.centos && steps.centos_8_stream_image_exists.outcome == 'failure'
141+
142+
- name: Output Rocky Linux 8 image tag
143+
id: rocky_8_image_tag
144+
run: |
145+
echo image_tag=$(grep stackhpc_rocky_8_overcloud_host_image_version: src/kayobe-config/etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
146+
147+
- name: Check if image exists already
148+
id: rocky_8_image_exists
149+
run: |
150+
source venvs/kayobe/bin/activate &&
151+
openstack image show \
152+
overcloud-rocky-8-${{ steps.rocky_8_image_tag.outputs.image_tag }}
153+
env:
154+
OS_CLOUD: openstack
155+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
156+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
157+
continue-on-error: true
158+
159+
- name: Download Rocky Linux 8 overcloud host image from Ark
160+
run: |
161+
source venvs/kayobe/bin/activate &&
162+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
163+
kayobe playbook run \
164+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
165+
-e os_distribution="rocky" \
166+
-e os_release="8"
167+
env:
168+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
169+
if: inputs.rocky8 && steps.rocky_8_image_exists.outcome == 'failure'
170+
171+
- name: Upload Rocky Linux 8 overcloud host image to Cloud
172+
run: |
173+
source venvs/kayobe/bin/activate &&
174+
openstack image create \
175+
overcloud-rocky-8-${{ steps.rocky_8_image_tag.outputs.image_tag }} \
176+
--container-format bare \
177+
--disk-format qcow2 \
178+
--file /tmp/rocky-8.qcow2 \
179+
--private \
180+
--progress
181+
env:
182+
OS_CLOUD: openstack
183+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
184+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
185+
if: inputs.rocky8 && steps.rocky_8_image_exists.outcome == 'failure'
186+
187+
- name: Output Rocky Linux 9 image tag
188+
id: rocky_9_image_tag
189+
run: |
190+
echo image_tag=$(grep stackhpc_rocky_9_overcloud_host_image_version: src/kayobe-config/etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
191+
192+
- name: Check if image exists already
193+
id: rocky_9_image_exists
194+
run: |
195+
source venvs/kayobe/bin/activate &&
196+
openstack image show \
197+
overcloud-rocky-9-${{ steps.rocky_9_image_tag.outputs.image_tag }}
198+
env:
199+
OS_CLOUD: openstack
200+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
201+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
202+
continue-on-error: true
203+
204+
- name: Download Rocky Linux 9 overcloud host image from Ark
205+
run: |
206+
source venvs/kayobe/bin/activate &&
207+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
208+
kayobe playbook run \
209+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
210+
-e os_distribution="rocky" \
211+
-e os_release="9"
212+
env:
213+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
214+
if: inputs.rocky9 && steps.rocky_9_image_exists.outcome == 'failure'
215+
216+
- name: Upload Rocky Linux 9 overcloud host image to Cloud
217+
run: |
218+
source venvs/kayobe/bin/activate &&
219+
openstack image create \
220+
overcloud-rocky-9-${{ steps.rocky_9_image_tag.outputs.image_tag }} \
221+
--container-format bare \
222+
--disk-format qcow2 \
223+
--file /tmp/rocky-9.qcow2 \
224+
--private \
225+
--progress
226+
env:
227+
OS_CLOUD: openstack
228+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
229+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
230+
if: inputs.rocky9 && steps.rocky_9_image_exists.outcome == 'failure'
231+
232+
- name: Output Ubuntu Focal image tag
233+
id: ubuntu_focal_image_tag
234+
run: |
235+
echo image_tag=$(grep stackhpc_ubuntu_focal_overcloud_host_image_version: src/kayobe-config/etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
236+
237+
- name: Check if image exists already
238+
id: ubuntu_focal_image_exists
239+
run: |
240+
source venvs/kayobe/bin/activate &&
241+
openstack image show \
242+
overcloud-ubuntu-focal-${{ steps.ubuntu_focal_image_tag.outputs.image_tag }}
243+
env:
244+
OS_CLOUD: openstack
245+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
246+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
247+
continue-on-error: true
248+
249+
- name: Download Ubuntu Focal 20.04 overcloud host image from Ark
250+
run: |
251+
source venvs/kayobe/bin/activate &&
252+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
253+
kayobe playbook run \
254+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
255+
-e os_distribution="ubuntu" \
256+
-e os_release="focal"
257+
env:
258+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
259+
if: inputs.ubuntu-focal && steps.ubuntu_focal_image_exists.outcome == 'failure'
260+
261+
- name: Upload Ubuntu Focal 20.04 overcloud host image to Cloud
262+
run: |
263+
source venvs/kayobe/bin/activate &&
264+
openstack image create \
265+
overcloud-ubuntu-focal-${{ steps.ubuntu_focal_image_tag.outputs.image_tag }} \
266+
--container-format bare \
267+
--disk-format qcow2 \
268+
--file /tmp/ubuntu-focal.qcow2 \
269+
--private \
270+
--progress
271+
env:
272+
OS_CLOUD: openstack
273+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
274+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
275+
if: inputs.ubuntu-focal && steps.ubuntu_focal_image_exists.outcome == 'failure'
276+
277+
- name: Output Ubuntu Jammy image tag
278+
id: ubuntu_jammy_image_tag
279+
run: |
280+
echo image_tag=$(grep stackhpc_ubuntu_jammy_overcloud_host_image_version: src/kayobe-config/etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
281+
282+
- name: Check if image exists already
283+
id: ubuntu_jammy_image_exists
284+
run: |
285+
source venvs/kayobe/bin/activate &&
286+
openstack image show \
287+
overcloud-ubuntu-jammy-${{ steps.ubuntu_jammy_image_tag.outputs.image_tag }}
288+
env:
289+
OS_CLOUD: openstack
290+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
291+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
292+
continue-on-error: true
293+
294+
- name: Download Ubuntu Jammy 22.04 overcloud host image from Ark
295+
run: |
296+
source venvs/kayobe/bin/activate &&
297+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
298+
kayobe playbook run \
299+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
300+
-e os_distribution="ubuntu" \
301+
-e os_release="jammy"
302+
env:
303+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
304+
if: inputs.ubuntu-jammy && steps.ubuntu_jammy_image_exists.outcome == 'failure'
305+
306+
- name: Upload Ubuntu Jammy 22.04 overcloud host image to Cloud
307+
run: |
308+
source venvs/kayobe/bin/activate &&
309+
openstack image create \
310+
overcloud-ubuntu-jammy-${{ steps.ubuntu_jammy_image_tag.outputs.image_tag }} \
311+
--container-format bare \
312+
--disk-format qcow2 \
313+
--file /tmp/ubuntu-jammy.qcow2 \
314+
--private \
315+
--progress
316+
env:
317+
OS_CLOUD: openstack
318+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
319+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
320+
if: inputs.ubuntu-jammy && steps.ubuntu_jammy_image_exists.outcome == 'failure'

0 commit comments

Comments
 (0)