Skip to content

Commit 97555f4

Browse files
committed
Add ubuntu upgrade process on CI-AIO
1 parent b863ab5 commit 97555f4

File tree

2 files changed

+125
-77
lines changed

2 files changed

+125
-77
lines changed

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ on:
6464
description: Whether to perform an upgrade
6565
type: boolean
6666
default: false
67+
host_os_upgrade:
68+
description: Whether to perform a host OS upgrade
69+
type: boolean
70+
default: false
6771
stackhpc_cloud_tests_version:
6872
description: Git version of https://github.com/stackhpc/stackhpc-cloud-tests to use for testing
6973
type: string
@@ -335,6 +339,29 @@ jobs:
335339
env:
336340
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
337341

342+
- name: Upgrade host OS
343+
run: |
344+
docker run -t --rm \
345+
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
346+
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
347+
-e KAYOBE_PATH=/stack/kayobe-automation-env/src/kayobe \
348+
${{ steps.kayobe_image.outputs.kayobe_image }} \
349+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/script-run.sh tools/ubuntu-upgrade-overcloud.sh all
350+
env:
351+
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
352+
if: inputs.host_os_upgrade && inputs.os_release == 'jammy'
353+
354+
- name: Deploy services that are built for later OS
355+
run: |
356+
docker run -t --rm \
357+
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
358+
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
359+
${{ steps.kayobe_image.outputs.kayobe_image }} \
360+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/overcloud-service-deploy.sh
361+
env:
362+
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
363+
if: inputs.host_os_upgrade && inputs.os_release == 'jammy'
364+
338365
- name: Run upgrade prerequisites
339366
run: |
340367
docker run -t --rm \

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

Lines changed: 98 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -127,109 +127,130 @@ jobs:
127127
secrets: inherit
128128
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
129129

130-
all-in-one-ubuntu-noble-ovs:
131-
name: aio (Ubuntu Noble OVS)
132-
needs:
133-
- check-changes
134-
- build-kayobe-image
135-
uses: ./.github/workflows/stackhpc-all-in-one.yml
136-
with:
137-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
138-
os_distribution: ubuntu
139-
os_release: noble
140-
ssh_username: ubuntu
141-
neutron_plugin: ovs
142-
OS_CLOUD: openstack
143-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
144-
secrets: inherit
145-
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
130+
# Temporarily disable normal AIOs
131+
# all-in-one-ubuntu-noble-ovs:
132+
# name: aio (Ubuntu Noble OVS)
133+
# needs:
134+
# - check-changes
135+
# - build-kayobe-image
136+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
137+
# with:
138+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
139+
# os_distribution: ubuntu
140+
# os_release: noble
141+
# ssh_username: ubuntu
142+
# neutron_plugin: ovs
143+
# OS_CLOUD: openstack
144+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
145+
# secrets: inherit
146+
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
147+
148+
# all-in-one-ubuntu-noble-ovn:
149+
# name: aio (Ubuntu Noble OVN)
150+
# needs:
151+
# - check-changes
152+
# - build-kayobe-image
153+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
154+
# with:
155+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
156+
# os_distribution: ubuntu
157+
# os_release: noble
158+
# ssh_username: ubuntu
159+
# neutron_plugin: ovn
160+
# OS_CLOUD: openstack
161+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
162+
# secrets: inherit
163+
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
164+
165+
# all-in-one-rocky-9-ovs:
166+
# name: aio (Rocky 9 OVS)
167+
# needs:
168+
# - check-changes
169+
# - build-kayobe-image
170+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
171+
# with:
172+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
173+
# os_distribution: rocky
174+
# os_release: "9"
175+
# ssh_username: cloud-user
176+
# neutron_plugin: ovs
177+
# OS_CLOUD: openstack
178+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
179+
# secrets: inherit
180+
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
181+
182+
# all-in-one-rocky-9-ovn:
183+
# name: aio (Rocky 9 OVN)
184+
# needs:
185+
# - check-changes
186+
# - build-kayobe-image
187+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
188+
# with:
189+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
190+
# os_distribution: rocky
191+
# os_release: "9"
192+
# ssh_username: cloud-user
193+
# neutron_plugin: ovn
194+
# OS_CLOUD: openstack
195+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
196+
# secrets: inherit
197+
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
146198

147-
all-in-one-ubuntu-noble-ovn:
148-
name: aio (Ubuntu Noble OVN)
199+
# Test three upgrade scenarios: Ubuntu Noble OVN, Rocky 9 OVN and Rocky 9 OVS.
200+
201+
all-in-one-upgrade-ubuntu-jammy-to-noble-ovn:
202+
name: aio upgrade (Ubuntu Jammy to Noble OVN)
149203
needs:
150204
- check-changes
151205
- build-kayobe-image
152206
uses: ./.github/workflows/stackhpc-all-in-one.yml
153207
with:
154208
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
155209
os_distribution: ubuntu
156-
os_release: noble
210+
os_release: jammy
157211
ssh_username: ubuntu
158212
neutron_plugin: ovn
159213
OS_CLOUD: openstack
160214
if: ${{ needs.check-changes.outputs.aio == 'true' }}
215+
upgrade: true
216+
host_os_upgrade: true
161217
secrets: inherit
162218
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
163219

164-
all-in-one-rocky-9-ovs:
165-
name: aio (Rocky 9 OVS)
166-
needs:
167-
- check-changes
168-
- build-kayobe-image
169-
uses: ./.github/workflows/stackhpc-all-in-one.yml
170-
with:
171-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
172-
os_distribution: rocky
173-
os_release: "9"
174-
ssh_username: cloud-user
175-
neutron_plugin: ovs
176-
OS_CLOUD: openstack
177-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
178-
secrets: inherit
179-
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
220+
# Temporarily disable rocky upgrades
180221

181-
all-in-one-rocky-9-ovn:
182-
name: aio (Rocky 9 OVN)
183-
needs:
184-
- check-changes
185-
- build-kayobe-image
186-
uses: ./.github/workflows/stackhpc-all-in-one.yml
187-
with:
188-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
189-
os_distribution: rocky
190-
os_release: "9"
191-
ssh_username: cloud-user
192-
neutron_plugin: ovn
193-
OS_CLOUD: openstack
194-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
195-
secrets: inherit
196-
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
197-
198-
# Test two upgrade scenarios: Ubuntu Noble OVS and Rocky 9 OVN.
222+
# all-in-one-upgrade-rocky-9-ovn:
223+
# name: aio upgrade (Rocky 9 OVN)
224+
# needs:
225+
# - check-changes
226+
# - build-kayobe-image
227+
# uses: ./.github/workflows/stackhpc-all-in-one.yml
228+
# with:
229+
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
230+
# os_distribution: rocky
231+
# os_release: "9"
232+
# ssh_username: cloud-user
233+
# neutron_plugin: ovn
234+
# OS_CLOUD: openstack
235+
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
236+
# upgrade: true
237+
# secrets: inherit
238+
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
199239

200-
# On hold until Noble support lands in stackhpc/2024.1
201-
# all-in-one-upgrade-ubuntu-noble-ovs:
202-
# name: aio upgrade (Ubuntu Noble OVS)
240+
# all-in-one-upgrade-rocky-9-ovs:
241+
# name: aio upgrade (Rocky 9 OVS)
203242
# needs:
204243
# - check-changes
205244
# - build-kayobe-image
206245
# uses: ./.github/workflows/stackhpc-all-in-one.yml
207246
# with:
208247
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
209-
# os_distribution: ubuntu
210-
# os_release: noble
211-
# ssh_username: ubuntu
248+
# os_distribution: rocky
249+
# os_release: "9"
250+
# ssh_username: cloud-user
212251
# neutron_plugin: ovs
213252
# OS_CLOUD: openstack
214253
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
215254
# upgrade: true
216255
# secrets: inherit
217256
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
218-
219-
all-in-one-upgrade-rocky-9-ovn:
220-
name: aio upgrade (Rocky 9 OVN)
221-
needs:
222-
- check-changes
223-
- build-kayobe-image
224-
uses: ./.github/workflows/stackhpc-all-in-one.yml
225-
with:
226-
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
227-
os_distribution: rocky
228-
os_release: "9"
229-
ssh_username: cloud-user
230-
neutron_plugin: ovn
231-
OS_CLOUD: openstack
232-
if: ${{ needs.check-changes.outputs.aio == 'true' }}
233-
upgrade: true
234-
secrets: inherit
235-
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

0 commit comments

Comments
 (0)