Skip to content

Commit 339824a

Browse files
committed
WIP: CI: Add upgrade tests
1 parent 85d0798 commit 339824a

File tree

2 files changed

+110
-56
lines changed

2 files changed

+110
-56
lines changed

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

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,15 @@ jobs:
7676
KAYOBE_ENVIRONMENT: ci-aio
7777
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
7878
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
7981
steps:
82+
# Checkout previous release
8083
- uses: actions/checkout@v3
8184
with:
82-
submodules: true
85+
# NOTE(upgrade): Reference the PREVIOUS release branch here.
86+
ref: stackhpc/yoga
87+
submodules: true
8388

8489
- name: Output image tag
8590
id: image_tag
@@ -125,6 +130,7 @@ jobs:
125130
aio_vm_flavor = "${{ env.VM_FLAVOR }}"
126131
aio_vm_network = "${{ env.VM_NETWORK }}"
127132
aio_vm_subnet = "${{ env.VM_SUBNET }}"
133+
aio_vm_volume_size = "${{ env.VM_VOLUME_SIZE }}"
128134
EOF
129135
working-directory: ${{ github.workspace }}/terraform/aio
130136
env:
@@ -135,6 +141,7 @@ jobs:
135141
VM_NETWORK: ${{ inputs.vm_network }}
136142
VM_SUBNET: ${{ inputs.vm_subnet }}
137143
VM_INTERFACE: ${{ inputs.vm_interface }}
144+
VM_VOLUME_SIZE: 45
138145

139146
- name: Terraform Plan
140147
run: terraform plan
@@ -206,8 +213,13 @@ jobs:
206213
cat terraform/aio/id_rsa >> $GITHUB_OUTPUT
207214
echo "EOF" >> $GITHUB_OUTPUT
208215
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+
209221
# 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
211223
run: |
212224
sudo docker image pull $KAYOBE_IMAGE
213225
@@ -216,7 +228,7 @@ jobs:
216228
sudo -E docker run -t --rm \
217229
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
218230
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
219-
$KAYOBE_IMAGE \
231+
$PREVIOUS_KAYOBE_IMAGE \
220232
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/growroot.yml'
221233
env:
222234
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
@@ -226,7 +238,7 @@ jobs:
226238
sudo -E docker run -t --rm \
227239
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
228240
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
229-
$KAYOBE_IMAGE \
241+
$PREVIOUS_KAYOBE_IMAGE \
230242
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-host-configure.sh
231243
env:
232244
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
@@ -236,7 +248,7 @@ jobs:
236248
sudo -E docker run -t --rm \
237249
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
238250
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
239-
$KAYOBE_IMAGE \
251+
$PREVIOUS_KAYOBE_IMAGE \
240252
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-service-deploy.sh
241253
env:
242254
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
@@ -246,11 +258,53 @@ jobs:
246258
sudo -E docker run -t --rm \
247259
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
248260
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
249-
$KAYOBE_IMAGE \
261+
$PREVIOUS_KAYOBE_IMAGE \
250262
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh etc/kayobe/ansible/configure-aio-resources.yml
251263
env:
252264
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
253265

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+
254308
- name: Tempest tests
255309
run: |
256310
mkdir -p tempest-artifacts

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

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -76,56 +76,56 @@ jobs:
7676
if: ${{ needs.check-changes.outputs.aio == 'true' }}
7777
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
7878

79-
all-in-one-ubuntu-jammy-ovs:
80-
name: aio (Ubuntu Jammy OVS)
81-
needs:
82-
- check-changes
83-
- build-kayobe-image
84-
uses: ./.github/workflows/stackhpc-all-in-one.yml
85-
with:
86-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
87-
os_distribution: ubuntu
88-
os_release: jammy
89-
ssh_username: ubuntu
90-
neutron_plugin: ovs
91-
OS_CLOUD: sms-lab-release
92-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
93-
secrets: inherit
94-
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
95-
96-
all-in-one-ubuntu-jammy-ovn:
97-
name: aio (Ubuntu Jammy OVN)
98-
needs:
99-
- check-changes
100-
- build-kayobe-image
101-
uses: ./.github/workflows/stackhpc-all-in-one.yml
102-
with:
103-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
104-
os_distribution: ubuntu
105-
os_release: jammy
106-
ssh_username: ubuntu
107-
neutron_plugin: ovn
108-
OS_CLOUD: sms-lab-release
109-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
110-
secrets: inherit
111-
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
112-
113-
all-in-one-rocky-9-ovs:
114-
name: aio (Rocky 9 OVS)
115-
needs:
116-
- check-changes
117-
- build-kayobe-image
118-
uses: ./.github/workflows/stackhpc-all-in-one.yml
119-
with:
120-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
121-
os_distribution: rocky
122-
os_release: "9"
123-
ssh_username: cloud-user
124-
neutron_plugin: ovs
125-
OS_CLOUD: sms-lab-release
126-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
127-
secrets: inherit
128-
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
79+
# all-in-one-ubuntu-jammy-ovs:
80+
# name: aio (Ubuntu Jammy OVS)
81+
# needs:
82+
# - check-changes
83+
# - build-kayobe-image
84+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
85+
# with:
86+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
87+
# os_distribution: ubuntu
88+
# os_release: jammy
89+
# ssh_username: ubuntu
90+
# neutron_plugin: ovs
91+
# OS_CLOUD: sms-lab-release
92+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
93+
# secrets: inherit
94+
# if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
95+
#
96+
# all-in-one-ubuntu-jammy-ovn:
97+
# name: aio (Ubuntu Jammy OVN)
98+
# needs:
99+
# - check-changes
100+
# - build-kayobe-image
101+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
102+
# with:
103+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
104+
# os_distribution: ubuntu
105+
# os_release: jammy
106+
# ssh_username: ubuntu
107+
# neutron_plugin: ovn
108+
# OS_CLOUD: sms-lab-release
109+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
110+
# secrets: inherit
111+
# if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
112+
#
113+
# all-in-one-rocky-9-ovs:
114+
# name: aio (Rocky 9 OVS)
115+
# needs:
116+
# - check-changes
117+
# - build-kayobe-image
118+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
119+
# with:
120+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
121+
# os_distribution: rocky
122+
# os_release: "9"
123+
# ssh_username: cloud-user
124+
# neutron_plugin: ovs
125+
# OS_CLOUD: sms-lab-release
126+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
127+
# secrets: inherit
128+
# if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
129129

130130
all-in-one-rocky-9-ovn:
131131
name: aio (Rocky 9 OVN)

0 commit comments

Comments
 (0)