diff --git a/.github/workflows/e2e-test-provider-example.yml b/.github/workflows/e2e-test-provider-example.yml index 423865a9c7..4eb7fd2d66 100644 --- a/.github/workflows/e2e-test-provider-example.yml +++ b/.github/workflows/e2e-test-provider-example.yml @@ -6,14 +6,6 @@ on: ref: type: string description: "Git ref to checkout" - cloudProvider: - description: "Which cloud provider to use." - type: choice - options: - - "aws" - - "azure" - - "gcp" - required: true regionZone: description: "Region or zone to create the cluster in. Leave empty for default region/zone." type: string @@ -31,15 +23,21 @@ on: description: Kubernetes version to target for the upgrade, empty for no upgrade. type: string required: false + attestationVariant: + description: "Attestation variant to use." + type: choice + options: + - "aws-sev-snp" + - "azure-sev-snp" + - "azure-tdx" + - "gcp-sev-es" + default: "azure-sev-snp" + required: true workflow_call: inputs: ref: type: string description: "Git ref to checkout" - cloudProvider: - description: "Which cloud provider to use." - type: string - required: true regionZone: description: "Which zone to use." type: string @@ -57,6 +55,10 @@ on: description: Kubernetes version to target for the upgrade, empty for target's default version. type: string required: false + attestationVariant: + description: "Attestation variant to use." + type: string + required: true jobs: provider-example-test: @@ -103,6 +105,15 @@ jobs: last_three="${run_id: -3}" echo "prefix=e2e-${last_three}" | tee -a "$GITHUB_OUTPUT" + - name: Determine cloudprovider from attestation variant + id: determine + shell: bash + run: | + attestationVariant="${{ inputs.attestationVariant }}" + cloudProvider="${attestationVariant%%-*}" + + echo "cloudProvider=${cloudProvider}" | tee -a "$GITHUB_OUTPUT" + - name: Log in to the Container registry uses: ./.github/actions/container_registry_login with: @@ -155,7 +166,7 @@ jobs: rm -rf "${terraform_provider_dir}" - name: Login to AWS (IAM + Cluster role) - if: inputs.cloudProvider == 'aws' + if: steps.determine.outputs.cloudProvider == 'aws' uses: aws-actions/configure-aws-credentials@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 with: role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2ETerraform @@ -164,17 +175,27 @@ jobs: role-duration-seconds: 21600 - name: Login to Azure (IAM + Cluster service principal) - if: inputs.cloudProvider == 'azure' + if: steps.determine.outputs.cloudProvider == 'azure' uses: ./.github/actions/login_azure with: azure_credentials: ${{ secrets.AZURE_E2E_TF_CREDENTIALS }} - name: Login to GCP (IAM + Cluster service account) - if: inputs.cloudProvider == 'gcp' + if: steps.determine.outputs.cloudProvider == 'gcp' uses: ./.github/actions/login_gcp with: service_account: "terraform-e2e@constellation-e2e.iam.gserviceaccount.com" + - name: Set Kubernetes version + id: kubernetes + run: | + # take the middle (2nd) supported Kubernetes version (default) + if [[ "${{ inputs.providerVersion }}" != "" ]]; then + echo "VERSION=$(../release/constellation config kubernetes-versions | awk 'NR==3{print $1}')" | tee -a "$GITHUB_OUTPUT" + else + echo "VERSION=$(../build/constellation config kubernetes-versions | awk 'NR==3{print $1}')" | tee -a "$GITHUB_OUTPUT" + fi + - name: Common CSP Terraform overrides working-directory: ${{ github.workspace }} shell: bash @@ -189,11 +210,11 @@ jobs: version=${prefixed_version#v} # remove v prefix if [[ "${{ inputs.providerVersion }}" == "" ]]; then - iam_src="../terraform-module/iam/${{ inputs.cloudProvider }}" - infra_src="../terraform-module/${{ inputs.cloudProvider }}" + iam_src="../terraform-module/iam/${{ steps.determine.outputs.cloudProvider }}" + infra_src="../terraform-module/${{ steps.determine.outputs.cloudProvider }}" else - iam_src="https://github.com/edgelesssys/constellation/releases/download/${{ inputs.providerVersion }}/terraform-module.zip//terraform-module/iam/${{ inputs.cloudProvider }}" - infra_src="https://github.com/edgelesssys/constellation/releases/download/${{ inputs.providerVersion }}/terraform-module.zip//terraform-module/${{ inputs.cloudProvider }}" + iam_src="https://github.com/edgelesssys/constellation/releases/download/${{ inputs.providerVersion }}/terraform-module.zip//terraform-module/iam/${{ steps.determine.outputs.cloudProvider }}" + infra_src="https://github.com/edgelesssys/constellation/releases/download/${{ inputs.providerVersion }}/terraform-module.zip//terraform-module/${{ steps.determine.outputs.cloudProvider }}" fi # by default use latest nightly image for devbuilds and release image otherwise @@ -211,12 +232,7 @@ jobs: fi fi - # take the middle (2nd) supported Kubernetes version (default) - if [[ "${{ inputs.providerVersion }}" != "" ]]; then - kubernetes_version="$(../release/constellation config kubernetes-versions | awk 'NR==3{print $1}')" - else - kubernetes_version="$(../build/constellation config kubernetes-versions | awk 'NR==3{print $1}')" - fi + kubernetes_version="${{ steps.kubernetes.outputs.version }}" cat > _override.tf <> _override.tf <> _override.tf <