Skip to content

Commit 5650007

Browse files
authored
Merge branch 'stackhpc/2023.1' into bugfix/antelope/osd-summary
2 parents d1a47be + 16f4d62 commit 5650007

File tree

97 files changed

+2747
-276
lines changed

Some content is hidden

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

97 files changed

+2747
-276
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
rm -f /tmp/updated_images.txt
5656
5757
- name: Clone StackHPC Kayobe repository
58-
uses: actions/checkout@v3
58+
uses: actions/checkout@v4
5959
with:
6060
repository: stackhpc/kayobe
6161
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
@@ -209,7 +209,7 @@ jobs:
209209
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'
210210

211211
- name: Upload updated images artifact
212-
uses: actions/upload-artifact@v3
212+
uses: actions/upload-artifact@v4
213213
with:
214214
name: Updated images list
215215
path: /tmp/updated_images.txt
@@ -218,7 +218,7 @@ jobs:
218218
steps.build_ubuntu_jammy.outcome == 'success'
219219

220220
- name: Upload Rocky 9 build logs if build failed
221-
uses: actions/upload-artifact@v3
221+
uses: actions/upload-artifact@v4
222222
with:
223223
name: Rocky 9 build logs
224224
path: |
@@ -228,7 +228,7 @@ jobs:
228228
if: steps.build_rocky_9.outcome == 'failure'
229229

230230
- name: Upload Ubuntu Jammy 22.04 build logs if build failed
231-
uses: actions/upload-artifact@v3
231+
uses: actions/upload-artifact@v4
232232
with:
233233
name: Ubuntu Jammy 22.04 build logs
234234
path: |

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ jobs:
2121
overcloud-host-image-promote:
2222
name: Promote overcloud host image
2323
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
24-
runs-on: [self-hosted, stackhpc-kayobe-config-kolla-builder-rl9]
24+
runs-on: ubuntu-22.04
2525
steps:
26-
- uses: actions/checkout@v3
26+
- uses: actions/checkout@v4
2727
with:
2828
path: src/kayobe-config
2929

@@ -32,9 +32,10 @@ jobs:
3232
run: |
3333
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' .gitreview)
3434
echo "openstack_release=${BRANCH}" | sed "s|stable/||" >> $GITHUB_OUTPUT
35+
working-directory: src/kayobe-config
3536

3637
- name: Clone StackHPC Kayobe repository
37-
uses: actions/checkout@v3
38+
uses: actions/checkout@v4
3839
with:
3940
repository: stackhpc/kayobe
4041
ref: refs/heads/stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
---
2+
name: Upload overcloud host images
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
rocky9:
7+
description: Upload Rocky Linux 9
8+
type: boolean
9+
default: true
10+
ubuntu-jammy:
11+
description: Upload Ubuntu 22.04 Jammy
12+
type: boolean
13+
default: true
14+
kayobe-environment:
15+
description: Kayobe environment to use
16+
type: string
17+
default: "ci-builder"
18+
secrets:
19+
KAYOBE_VAULT_PASSWORD:
20+
required: true
21+
CLOUDS_YAML:
22+
required: true
23+
OS_APPLICATION_CREDENTIAL_ID:
24+
required: true
25+
OS_APPLICATION_CREDENTIAL_SECRET:
26+
required: true
27+
28+
env:
29+
ANSIBLE_FORCE_COLOR: True
30+
jobs:
31+
overcloud-host-image-upload:
32+
name: Upload overcloud host images
33+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
34+
runs-on: arc-skc-host-image-builder-runner
35+
permissions: {}
36+
steps:
37+
- name: Install package dependencies
38+
run: |
39+
sudo apt update
40+
sudo apt install -y build-essential git unzip nodejs python3-wheel python3-pip python3-venv
41+
42+
- uses: actions/checkout@v4
43+
with:
44+
path: src/kayobe-config
45+
46+
- name: Determine OpenStack release
47+
id: openstack_release
48+
run: |
49+
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' src/kayobe-config/.gitreview)
50+
echo "openstack_release=${BRANCH}" | sed "s|stable/||" >> $GITHUB_OUTPUT
51+
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+
59+
- name: Install Kayobe
60+
run: |
61+
mkdir -p venvs &&
62+
pushd venvs &&
63+
python3 -m venv kayobe &&
64+
source kayobe/bin/activate &&
65+
pip install -U pip &&
66+
pip install ../src/kayobe
67+
68+
- name: Bootstrap the control host
69+
run: |
70+
source venvs/kayobe/bin/activate &&
71+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
72+
kayobe control host bootstrap --skip-tags bootstrap
73+
74+
- name: Generate clouds.yaml
75+
run: |
76+
cat << EOF > clouds.yaml
77+
${{ secrets.CLOUDS_YAML }}
78+
EOF
79+
80+
- name: Install OpenStack client
81+
run: |
82+
source venvs/kayobe/bin/activate &&
83+
pip install python-openstackclient -c https://opendev.org/openstack/requirements/raw/branch/stable/${{ steps.openstack_release.outputs.openstack_release }}/upper-constraints.txt
84+
85+
- name: Output Rocky Linux 9 image tag
86+
id: rocky_9_image_tag
87+
run: |
88+
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
89+
90+
- name: Check if image exists already
91+
id: rocky_9_image_exists
92+
run: |
93+
source venvs/kayobe/bin/activate &&
94+
openstack image show \
95+
overcloud-rocky-9-${{ steps.rocky_9_image_tag.outputs.image_tag }}
96+
env:
97+
OS_CLOUD: openstack
98+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
99+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
100+
continue-on-error: true
101+
102+
- name: Download Rocky Linux 9 overcloud host image from Ark
103+
run: |
104+
source venvs/kayobe/bin/activate &&
105+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
106+
kayobe playbook run \
107+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
108+
-e os_distribution="rocky" \
109+
-e os_release="9"
110+
env:
111+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
112+
if: inputs.rocky9 && steps.rocky_9_image_exists.outcome == 'failure'
113+
114+
- name: Upload Rocky Linux 9 overcloud host image to Cloud
115+
run: |
116+
source venvs/kayobe/bin/activate &&
117+
openstack image create \
118+
overcloud-rocky-9-${{ steps.rocky_9_image_tag.outputs.image_tag }} \
119+
--container-format bare \
120+
--disk-format qcow2 \
121+
--file /tmp/rocky-9.qcow2 \
122+
--private \
123+
--progress
124+
env:
125+
OS_CLOUD: openstack
126+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
127+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
128+
if: inputs.rocky9 && steps.rocky_9_image_exists.outcome == 'failure'
129+
130+
- name: Output Ubuntu Jammy image tag
131+
id: ubuntu_jammy_image_tag
132+
run: |
133+
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
134+
135+
- name: Check if image exists already
136+
id: ubuntu_jammy_image_exists
137+
run: |
138+
source venvs/kayobe/bin/activate &&
139+
openstack image show \
140+
overcloud-ubuntu-jammy-${{ steps.ubuntu_jammy_image_tag.outputs.image_tag }}
141+
env:
142+
OS_CLOUD: openstack
143+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
144+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
145+
continue-on-error: true
146+
147+
- name: Download Ubuntu Jammy 22.04 overcloud host image from Ark
148+
run: |
149+
source venvs/kayobe/bin/activate &&
150+
source src/kayobe-config/kayobe-env --environment ${{ inputs.kayobe-environment }} &&
151+
kayobe playbook run \
152+
src/kayobe-config/etc/kayobe/ansible/pulp-host-image-download.yml \
153+
-e os_distribution="ubuntu" \
154+
-e os_release="jammy"
155+
env:
156+
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
157+
if: inputs.ubuntu-jammy && steps.ubuntu_jammy_image_exists.outcome == 'failure'
158+
159+
- name: Upload Ubuntu Jammy 22.04 overcloud host image to Cloud
160+
run: |
161+
source venvs/kayobe/bin/activate &&
162+
openstack image create \
163+
overcloud-ubuntu-jammy-${{ steps.ubuntu_jammy_image_tag.outputs.image_tag }} \
164+
--container-format bare \
165+
--disk-format qcow2 \
166+
--file /tmp/ubuntu-jammy.qcow2 \
167+
--private \
168+
--progress
169+
env:
170+
OS_CLOUD: openstack
171+
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
172+
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
173+
if: inputs.ubuntu-jammy && steps.ubuntu_jammy_image_exists.outcome == 'failure'

0 commit comments

Comments
 (0)