Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 23 additions & 8 deletions .github/workflows/ipa-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ on:
description: Build Ubuntu 22.04 Jammy
type: boolean
default: true
runner_env:
description: Which cloud to run on?
type: choice
default: SMS Lab
options:
- SMS Lab
- Leafcloud
secrets:
KAYOBE_VAULT_PASSWORD:
required: true
Expand All @@ -26,10 +33,18 @@ env:
KAYOBE_ENVIRONMENT: ci-builder
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
jobs:
runner-selection:
uses: ./.github/workflows/runner-selector.yml
with:
runner_env: ${{ inputs.runner_env }}

ipa-image-build:
name: Build IPA images
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
runs-on: arc-skc-host-image-builder-runner
environment: ${{ inputs.runner_env }}
runs-on: ${{ needs.runner-selection.outputs.runner_name_image_build }}
needs:
- runner-selection
permissions: {}
steps:
- name: Install Package
Expand Down Expand Up @@ -99,20 +114,20 @@ jobs:
ssh_public_key = "id_rsa.pub"
ssh_username = "ubuntu"
aio_vm_name = "skc-ipa-image-builder"
aio_vm_image = "Ubuntu-22.04"
aio_vm_flavor = "en1.large"
aio_vm_network = "stackhpc-ci"
aio_vm_subnet = "stackhpc-ci"
aio_vm_image = "${{ vars.HOST_IMAGE_BUILD_IMAGE }}"
aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }}"
aio_vm_network = "${{ vars.HOST_IMAGE_BUILD_NETWORK }}"
aio_vm_subnet = "${{ vars.HOST_IMAGE_BUILD_SUBNET }}"
aio_vm_interface = "ens3"
aio_vm_volume_size = 100
aio_vm_volume_size = "${{ vars.HOST_IMAGE_BUILD_VOLUME }}"
EOF
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio

- name: Terraform Plan
run: terraform plan
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
env:
OS_CLOUD: "openstack"
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}

Expand All @@ -132,7 +147,7 @@ jobs:
exit 1
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
env:
OS_CLOUD: "openstack"
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}

Expand Down
60 changes: 51 additions & 9 deletions .github/workflows/overcloud-host-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ on:
description: Build Ubuntu 22.04 Jammy
type: boolean
default: true
runner_env:
description: Which cloud to run on?
type: choice
default: SMS Lab
options:
- SMS Lab
- Leafcloud
secrets:
KAYOBE_VAULT_PASSWORD:
required: true
Expand All @@ -26,10 +33,17 @@ env:
KAYOBE_ENVIRONMENT: ci-builder
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
jobs:
runner-selection:
uses: ./.github/workflows/runner-selector.yml
with:
runner_env: ${{ inputs.runner_env }}
overcloud-host-image-build:
name: Build overcloud host images
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
runs-on: arc-skc-host-image-builder-runner
environment: ${{ inputs.runner_env }}
runs-on: ${{ needs.runner-selection.outputs.runner_name_image_build }}
needs:
- runner-selection
permissions: {}
steps:
- name: Validate inputs
Expand Down Expand Up @@ -109,10 +123,10 @@ jobs:
aio_vm_name = "skc-host-image-builder"
# Must be an Ubuntu Jammy host to successfully build all images
# This MUST NOT be an LVM image. It can cause confusing conficts with the built image.
aio_vm_image = "Ubuntu-22.04"
aio_vm_flavor = "en1.medium"
aio_vm_network = "stackhpc-ci"
aio_vm_subnet = "stackhpc-ci"
aio_vm_image = "${{ vars.HOST_IMAGE_BUILD_IMAGE }}"
aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }}"
aio_vm_network = "${{ vars.HOST_IMAGE_BUILD_NETWORK }}"
aio_vm_subnet = "${{ vars.HOST_IMAGE_BUILD_SUBNET }}"
aio_vm_interface = "ens3"
EOF
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
Expand All @@ -121,7 +135,7 @@ jobs:
run: terraform plan
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
env:
OS_CLOUD: "openstack"
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}

Expand All @@ -141,7 +155,7 @@ jobs:
exit 1
working-directory: ${{ github.workspace }}/src/kayobe-config/terraform/aio
env:
OS_CLOUD: "openstack"
OS_CLOUD: ${{ vars.OS_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}

Expand Down Expand Up @@ -250,7 +264,7 @@ jobs:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
if: inputs.rocky9 && steps.build_rocky_9.outcome == 'success'

- name: Upload Rocky Linux 9 overcloud host image to Dev Cloud
- name: Upload Rocky Linux 9 overcloud host image to current Dev Cloud (SMS/Leafcloud)
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
Expand All @@ -264,6 +278,20 @@ jobs:
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
if: inputs.rocky9 && steps.build_rocky_9.outcome == 'success'

- name: Upload Rocky Linux 9 overcloud host image to other Dev Cloud (Leafcloud/SMS)
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
-e local_image_path="/opt/kayobe/images/overcloud-rocky-9/overcloud-rocky-9.qcow2" \
-e image_name=overcloud-rocky-9-${{ steps.host_image_tag.outputs.host_image_tag }}
env:
CLOUDS_YAML: ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
if: inputs.rocky9 && steps.build_rocky_9.outcome == 'success'

- name: Build an Ubuntu Jammy 22.04 overcloud host image
id: build_ubuntu_jammy
continue-on-error: true
Expand Down Expand Up @@ -304,7 +332,7 @@ jobs:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'

- name: Upload Ubuntu Jammy overcloud host image to Dev Cloud
- name: Upload Ubuntu Jammy overcloud host image to current Dev Cloud (SMS/Leafcloud)
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
Expand All @@ -318,6 +346,20 @@ jobs:
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'

- name: Upload Ubuntu Jammy overcloud host image to other Dev Cloud (Leafcloud/SMS)
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe playbook run \
src/kayobe-config/etc/kayobe/ansible/openstack-host-image-upload.yml \
-e local_image_path="/opt/kayobe/images/overcloud-ubuntu-jammy/overcloud-ubuntu-jammy.qcow2" \
-e image_name=overcloud-ubuntu-jammy-${{ steps.host_image_tag.outputs.host_image_tag }}
env:
CLOUDS_YAML: ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }}
if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success'

- name: Copy logs back
continue-on-error: true
run: |
Expand Down
Loading