-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathovercloud-host-image-promote.yml
More file actions
189 lines (174 loc) · 7.87 KB
/
overcloud-host-image-promote.yml
File metadata and controls
189 lines (174 loc) · 7.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
---
name: Promote overcloud host image
on:
workflow_dispatch:
inputs:
rocky9:
description: Promote Rocky Linux 9
type: boolean
default: true
rocky9-aarch64:
description: Promote Rocky Linux 9 aarch64
type: boolean
default: false
rocky10:
description: Promote Rocky Linux 10
type: boolean
default: true
rocky10-aarch64:
description: Promote Rocky Linux 10 aarch64
type: boolean
default: false
ubuntu-noble:
description: Promote Ubuntu 24.04 Noble
type: boolean
default: true
env:
ANSIBLE_FORCE_COLOR: True
jobs:
overcloud-host-image-promote:
name: Promote overcloud host image
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
runs-on: ubuntu-24.04
steps:
- name: Validate inputs
run: |
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.rocky9-aarch64 }} == 'false' && ${{ inputs.rocky10 }} == 'false' && ${{ inputs.rocky10-aarch64 }} == 'false' && ${{ inputs.ubuntu-noble }} == 'false' ]]; then
echo "At least one distribution must be selected"
exit 1
fi
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
path: src/kayobe-config
- name: Determine OpenStack release
id: openstack_release
run: |
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' .gitreview)
echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT
working-directory: src/kayobe-config
- name: Setup networking
run: |
if ! ip l show breth1 >/dev/null 2>&1; then
sudo ip l add breth1 type bridge
fi
sudo ip l set breth1 up
if ! ip a show breth1 | grep 192.168.33.3/24; then
sudo ip a add 192.168.33.3/24 dev breth1
fi
if ! ip l show dummy1 >/dev/null 2>&1; then
sudo ip l add dummy1 type dummy
fi
sudo ip l set dummy1 up
sudo ip l set dummy1 master breth1
- name: Install Kayobe
run: |
mkdir -p venvs &&
pushd venvs &&
python3 -m venv kayobe &&
source kayobe/bin/activate &&
pip install -U pip &&
pip install -r ../src/kayobe-config/requirements.txt
- name: Bootstrap the control host
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe control host bootstrap
- name: Gather Rocky Linux 9 overcloud host image tag
id: rocky9_image_tag
run: |
echo image_tag=$(grep stackhpc_rocky_9_overcloud_host_image_version: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
working-directory: src/kayobe-config
if: inputs.rocky9
- name: Gather Rocky Linux 10 overcloud host image tag
id: rocky10_image_tag
run: |
echo image_tag=$(grep stackhpc_rocky_10_overcloud_host_image_version: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
working-directory: src/kayobe-config
if: inputs.rocky10
- name: Gather Rocky Linux 9 aarch64 overcloud host image tag
id: rocky9_aarch64_image_tag
run: |
echo image_tag=$(grep stackhpc_rocky_9_overcloud_host_image_version_aarch64: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
working-directory: src/kayobe-config
if: inputs.rocky9-aarch64
- name: Gather Rocky Linux 10 aarch64 overcloud host image tag
id: rocky10_aarch64_image_tag
run: |
echo image_tag=$(grep stackhpc_rocky_10_overcloud_host_image_version_aarch64: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
working-directory: src/kayobe-config
if: inputs.rocky10-aarch64
- name: Gather Ubuntu Noble overcloud host image tag
id: ubuntu_noble_image_tag
run: |
echo image_tag=$(grep stackhpc_ubuntu_noble_overcloud_host_image_version: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT
working-directory: src/kayobe-config
if: inputs.ubuntu-noble
- name: Promote Rocky Linux 9 overcloud host image artifact
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/pulp/pulp-artifact-promote.yml \
-e artifact_type="kayobe-images" \
-e os_distribution='rocky' \
-e os_release='9' \
-e promotion_tag=${{ steps.rocky9_image_tag.outputs.image_tag }}
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_BUILDER }}
if: inputs.rocky9
- name: Promote Rocky Linux 10 overcloud host image artifact
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/pulp/pulp-artifact-promote.yml \
-e artifact_type="kayobe-images" \
-e os_distribution='rocky' \
-e os_release='10' \
-e promotion_tag=${{ steps.rocky10_image_tag.outputs.image_tag }}
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_BUILDER }}
if: inputs.rocky10
- name: Promote Rocky Linux 9 aarch64 overcloud host image artifact
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/pulp/pulp-artifact-promote.yml \
-e artifact_type="kayobe-images" \
-e os_distribution='rocky' \
-e os_release='9' \
-e promotion_tag=${{ steps.rocky9_aarch64_image_tag.outputs.image_tag }} \
-e repository_name="kayobe-images-${{ steps.openstack_release.outputs.openstack_release }}-rocky-9-aarch64" \
-e pulp_base_path="kayobe-images/${{ steps.openstack_release.outputs.openstack_release }}/rocky/9/aarch64"
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_BUILDER }}
if: inputs.rocky9-aarch64
- name: Promote Rocky Linux 10 aarch64 overcloud host image artifact
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/pulp/pulp-artifact-promote.yml \
-e artifact_type="kayobe-images" \
-e os_distribution='rocky' \
-e os_release='10' \
-e promotion_tag=${{ steps.rocky10_aarch64_image_tag.outputs.image_tag }} \
-e repository_name="kayobe-images-${{ steps.openstack_release.outputs.openstack_release }}-rocky-10-aarch64" \
-e pulp_base_path="kayobe-images/${{ steps.openstack_release.outputs.openstack_release }}/rocky/10/aarch64"
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_BUILDER }}
if: inputs.rocky10-aarch64
- name: Promote Ubuntu Noble 24.04 overcloud host image artifact
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/pulp/pulp-artifact-promote.yml \
-e artifact_type="kayobe-images" \
-e os_distribution='ubuntu' \
-e os_release='noble' \
-e promotion_tag=${{ steps.ubuntu_noble_image_tag.outputs.image_tag }}
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_BUILDER }}
if: inputs.ubuntu-noble