@@ -76,10 +76,15 @@ jobs:
76
76
KAYOBE_ENVIRONMENT : ci-aio
77
77
KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
78
78
KAYOBE_IMAGE : ${{ inputs.kayobe_image }}
79
+ # NOTE(upgrade): Reference the PREVIOUS release here.
80
+ PREVIOUS_KAYOBE_IMAGE : ghcr.io/stackhpc/stackhpc-kayobe-config:stackhpc-yoga
79
81
steps :
82
+ # Checkout previous release
80
83
- uses : actions/checkout@v3
81
84
with :
82
- submodules : true
85
+ # NOTE(upgrade): Reference the PREVIOUS release branch here.
86
+ ref : stackhpc/yoga
87
+ submodules : true
83
88
84
89
- name : Output image tag
85
90
id : image_tag
@@ -125,6 +130,7 @@ jobs:
125
130
aio_vm_flavor = "${{ env.VM_FLAVOR }}"
126
131
aio_vm_network = "${{ env.VM_NETWORK }}"
127
132
aio_vm_subnet = "${{ env.VM_SUBNET }}"
133
+ aio_vm_volume_size = "${{ env.VM_VOLUME_SIZE }}"
128
134
EOF
129
135
working-directory : ${{ github.workspace }}/terraform/aio
130
136
env :
@@ -135,6 +141,7 @@ jobs:
135
141
VM_NETWORK : ${{ inputs.vm_network }}
136
142
VM_SUBNET : ${{ inputs.vm_subnet }}
137
143
VM_INTERFACE : ${{ inputs.vm_interface }}
144
+ VM_VOLUME_SIZE : 45
138
145
139
146
- name : Terraform Plan
140
147
run : terraform plan
@@ -206,8 +213,13 @@ jobs:
206
213
cat terraform/aio/id_rsa >> $GITHUB_OUTPUT
207
214
echo "EOF" >> $GITHUB_OUTPUT
208
215
216
+ # The same tag may be reused (e.g. stackhpc/yoga), so ensure we have the latest image.
217
+ - name : Pull previous Kayobe image
218
+ run : |
219
+ sudo docker image pull $PREVIOUS_KAYOBE_IMAGE
220
+
209
221
# The same tag may be reused (e.g. pr-123), so ensure we have the latest image.
210
- - name : Pull latest Kayobe image
222
+ - name : Pull current Kayobe image
211
223
run : |
212
224
sudo docker image pull $KAYOBE_IMAGE
213
225
@@ -216,7 +228,7 @@ jobs:
216
228
sudo -E docker run -t --rm \
217
229
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
218
230
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
219
- $KAYOBE_IMAGE \
231
+ $PREVIOUS_KAYOBE_IMAGE \
220
232
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/growroot.yml'
221
233
env :
222
234
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
@@ -226,7 +238,7 @@ jobs:
226
238
sudo -E docker run -t --rm \
227
239
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
228
240
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
229
- $KAYOBE_IMAGE \
241
+ $PREVIOUS_KAYOBE_IMAGE \
230
242
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-host-configure.sh
231
243
env :
232
244
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
@@ -236,7 +248,7 @@ jobs:
236
248
sudo -E docker run -t --rm \
237
249
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
238
250
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
239
- $KAYOBE_IMAGE \
251
+ $PREVIOUS_KAYOBE_IMAGE \
240
252
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-service-deploy.sh
241
253
env :
242
254
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
@@ -246,11 +258,53 @@ jobs:
246
258
sudo -E docker run -t --rm \
247
259
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
248
260
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
249
- $KAYOBE_IMAGE \
261
+ $PREVIOUS_KAYOBE_IMAGE \
250
262
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh etc/kayobe/ansible/configure-aio-resources.yml
251
263
env :
252
264
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
253
265
266
+ - name : Stash config changes
267
+ run : git stash
268
+
269
+ # Now begin upgrade
270
+ - uses : actions/checkout@v3
271
+ with :
272
+ submodules : true
273
+ clean : false
274
+
275
+ - name : Pop stashed config changes
276
+ run : git stash pop
277
+
278
+ - name : Host upgrade
279
+ run : |
280
+ sudo -E docker run -t --rm \
281
+ -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
282
+ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
283
+ $KAYOBE_IMAGE \
284
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-host-upgrade.sh
285
+ env :
286
+ KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
287
+
288
+ - name : Host configure
289
+ run : |
290
+ sudo -E docker run -t --rm \
291
+ -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
292
+ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
293
+ $KAYOBE_IMAGE \
294
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-host-configure.sh
295
+ env :
296
+ KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
297
+
298
+ - name : Service upgrade
299
+ run : |
300
+ sudo -E docker run -t --rm \
301
+ -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
302
+ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
303
+ $KAYOBE_IMAGE \
304
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-service-upgrade.sh
305
+ env :
306
+ KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
307
+
254
308
- name : Tempest tests
255
309
run : |
256
310
mkdir -p tempest-artifacts
0 commit comments