diff --git a/.github/workflows/stackhpc-all-in-one.yml b/.github/workflows/stackhpc-all-in-one.yml index 5b34ec16b..81ad11a7f 100644 --- a/.github/workflows/stackhpc-all-in-one.yml +++ b/.github/workflows/stackhpc-all-in-one.yml @@ -23,6 +23,10 @@ on: description: Host OS release type: string default: '9' + architecture: + description: Host architecture + type: string + default: x86_64 ssh_username: description: User for terraform to access the all-in-one VM type: string @@ -126,14 +130,14 @@ jobs: - name: Output image tag id: image_tag run: | - echo image_tag=$(grep stackhpc_${{ inputs.os_distribution }}_$(sed s/-/_/ <(echo "${{ inputs.os_release }}"))_overcloud_host_image_version: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT + echo image_tag=$(grep stackhpc_${{ inputs.os_distribution }}_$(sed s/-/_/ <(echo "${{ inputs.os_release }}"))_overcloud_host_image_version${{ inputs.architecture == 'aarch64' && '_aarch64' || '' }}: etc/kayobe/pulp-host-image-versions.yml | awk '{print $2}') >> $GITHUB_OUTPUT # Use the image override if set, otherwise use overcloud-os_distribution-os_release-tag - name: Output image name id: image_name run: | if [ -z "${{ inputs.vm_image_override }}" ]; then - echo image_name=overcloud-${{ inputs.os_distribution }}-${{ inputs.os_release }}-${{ steps.image_tag.outputs.image_tag }} >> $GITHUB_OUTPUT + echo image_name=overcloud-${{ inputs.os_distribution }}-${{ inputs.os_release }}${{ inputs.architecture == 'aarch64' && '-aarch64' || '' }}-${{ steps.image_tag.outputs.image_tag }} >> $GITHUB_OUTPUT else echo image_name=${{ inputs.vm_image_override }} >> $GITHUB_OUTPUT fi @@ -173,7 +177,7 @@ jobs: working-directory: ${{ github.workspace }}/terraform/aio env: SSH_USERNAME: "${{ inputs.ssh_username }}" - VM_NAME: "skc-ci-aio-${{ inputs.neutron_plugin }}-${{ github.run_id }}" + VM_NAME: "skc-ci-aio-${{ inputs.architecture }}-${{ inputs.neutron_plugin }}-${{ github.run_id }}" VM_IMAGE: ${{ steps.image_name.outputs.image_name }} VM_INTERFACE: ${{ inputs.vm_interface }} VM_VOLUME_SIZE: ${{ inputs.upgrade && '100' || '50' }} @@ -245,9 +249,11 @@ jobs: --- os_distribution: ${{ env.OS_DISTRIBUTION }} os_release: "${{ env.OS_RELEASE }}" + kolla_base_arch: ${{ env.ARCHITECTURE }} kolla_enable_ovn: ${{ env.ENABLE_OVN }} EOF env: + ARCHITECTURE: ${{ inputs.architecture }} ENABLE_OVN: ${{ inputs.neutron_plugin == 'ovn' }} OS_DISTRIBUTION: ${{ inputs.os_distribution }} OS_RELEASE: ${{ inputs.os_release }} @@ -455,6 +461,7 @@ jobs: -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \ -v $(pwd)/tempest-artifacts:/stack/tempest-artifacts \ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \ + -e KAYOBE_AUTOMATION_RALLY_TAG=latest \ $KAYOBE_IMAGE \ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/tempest.sh -e ansible_user=stack env: @@ -499,7 +506,7 @@ jobs: - name: Upload test result artifacts uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: - name: test-results-${{ inputs.os_distribution }}-${{ inputs.os_release }}-${{ inputs.neutron_plugin }}${{ inputs.upgrade && '-upgrade' || '' }} + name: test-results-${{ inputs.os_distribution }}-${{ inputs.os_release }}-${{ inputs.architecture }}-${{ inputs.neutron_plugin }}${{ inputs.upgrade && '-upgrade' || '' }} path: | diagnostics/ tempest-artifacts/ diff --git a/.github/workflows/stackhpc-pull-request.yml b/.github/workflows/stackhpc-pull-request.yml index 5e280fa63..c0ad4541c 100644 --- a/.github/workflows/stackhpc-pull-request.yml +++ b/.github/workflows/stackhpc-pull-request.yml @@ -187,6 +187,25 @@ jobs: secrets: inherit if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-9-aarch64-ovs: + name: aio (Rocky 9 aarch64 OVS) + permissions: {} + needs: + - check-changes + - build-kayobe-image + uses: ./.github/workflows/stackhpc-all-in-one.yml + with: + kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + architecture: aarch64 + os_distribution: rocky + os_release: "9" + ssh_username: cloud-user + neutron_plugin: ovs + OS_CLOUD: openstack + if: ${{ needs.check-changes.outputs.aio == 'true' }} + secrets: inherit + if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-9-ovn: name: aio (Rocky 9 OVN) permissions: {} @@ -205,6 +224,25 @@ jobs: secrets: inherit if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-9-aarch64-ovn: + name: aio (Rocky 9 aarch64 OVN) + permissions: {} + needs: + - check-changes + - build-kayobe-image + uses: ./.github/workflows/stackhpc-all-in-one.yml + with: + kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + architecture: aarch64 + os_distribution: rocky + os_release: "9" + ssh_username: cloud-user + neutron_plugin: ovn + OS_CLOUD: openstack + if: ${{ needs.check-changes.outputs.aio == 'true' }} + secrets: inherit + if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-10-ovs: name: aio (Rocky 10 OVS) permissions: {} @@ -223,6 +261,25 @@ jobs: secrets: inherit if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-10-aarch64-ovs: + name: aio (Rocky 10 aarch64 OVS) + permissions: {} + needs: + - check-changes + - build-kayobe-image + uses: ./.github/workflows/stackhpc-all-in-one.yml + with: + kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + architecture: aarch64 + os_distribution: rocky + os_release: "10" + ssh_username: cloud-user + neutron_plugin: ovs + OS_CLOUD: openstack + if: ${{ needs.check-changes.outputs.aio == 'true' }} + secrets: inherit + if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-10-ovn: name: aio (Rocky 10 OVN) permissions: {} @@ -241,6 +298,25 @@ jobs: secrets: inherit if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + all-in-one-rocky-10-aarch64-ovn: + name: aio (Rocky 10 aarch64 OVN) + permissions: {} + needs: + - check-changes + - build-kayobe-image + uses: ./.github/workflows/stackhpc-all-in-one.yml + with: + kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} + architecture: aarch64 + os_distribution: rocky + os_release: "10" + ssh_username: cloud-user + neutron_plugin: ovn + OS_CLOUD: openstack + if: ${{ needs.check-changes.outputs.aio == 'true' }} + secrets: inherit + if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} + # Test three upgrade scenarios: Ubuntu Jammy to Noble OVN and Rocky 9 OVN. all-in-one-upgrade-ubuntu-jammy-to-noble-ovn: