From 3933a97567956fbab98db95c98c870713b54e0a2 Mon Sep 17 00:00:00 2001 From: Paul Meyer <49727155+katexochen@users.noreply.github.com> Date: Mon, 31 Oct 2022 17:12:08 +0100 Subject: [PATCH] e2e: rework schedule of e2e test daily/weekly Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com> --- .../actions/constellation_create/action.yml | 2 +- .github/workflows/e2e-test-azure.yml | 153 ------------------ ...st-azure-weekly.yml => e2e-test-daily.yml} | 31 ++-- .github/workflows/e2e-test-gcp-weekly.yml | 55 ------- .github/workflows/e2e-test-gcp.yml | 97 ----------- .github/workflows/e2e-test-weekly.yml | 100 ++++++++++++ 6 files changed, 117 insertions(+), 321 deletions(-) delete mode 100644 .github/workflows/e2e-test-azure.yml rename .github/workflows/{e2e-test-azure-weekly.yml => e2e-test-daily.yml} (79%) delete mode 100644 .github/workflows/e2e-test-gcp-weekly.yml delete mode 100644 .github/workflows/e2e-test-gcp.yml create mode 100644 .github/workflows/e2e-test-weekly.yml diff --git a/.github/actions/constellation_create/action.yml b/.github/actions/constellation_create/action.yml index ef5e657d5..2b6e528c6 100644 --- a/.github/actions/constellation_create/action.yml +++ b/.github/actions/constellation_create/action.yml @@ -49,7 +49,7 @@ runs: yq eval -i \ "(.provider | select(. | has(\"azure\")).azure.subscription) = \"0d202bbb-4fa7-4af8-8125-58c269a05435\" | (.provider | select(. | has(\"azure\")).azure.tenant) = \"adb650a8-5da3-4b15-b4b0-3daf65ff7626\" | - (.provider | select(. | has(\"azure\")).azure.location) = \"West US\" | + (.provider | select(. | has(\"azure\")).azure.location) = \"North Europe\" | (.provider | select(. | has(\"azure\")).azure.userAssignedIdentity) = \"/subscriptions/0d202bbb-4fa7-4af8-8125-58c269a05435/resourceGroups/e2e-test-creds/providers/Microsoft.ManagedIdentity/userAssignedIdentities/e2e-test-user-assigned-id\" | (.provider | select(. | has(\"azure\")).azure.resourceGroup) = \"${{ inputs.azureResourceGroup }}\" | (.provider | select(. | has(\"azure\")).azure.appClientID) = \"b657a00e-813a-4dc7-9b09-fa498a254d71\" | diff --git a/.github/workflows/e2e-test-azure.yml b/.github/workflows/e2e-test-azure.yml deleted file mode 100644 index 999da87ef..000000000 --- a/.github/workflows/e2e-test-azure.yml +++ /dev/null @@ -1,153 +0,0 @@ -name: e2e Test Azure - -on: - workflow_dispatch: - schedule: - - cron: "0 0 * * 2-6" - -env: - ARM_CLIENT_ID: "b657a00e-813a-4dc7-9b09-fa498a254d71" - ARM_CLIENT_SECRET: ${{ secrets.AZURE_E2E_CLIENT_SECRET }} - ARM_SUBSCRIPTION_ID: "0d202bbb-4fa7-4af8-8125-58c269a05435" - ARM_TENANT_ID: "adb650a8-5da3-4b15-b4b0-3daf65ff7626" - -jobs: - test-default: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - with: - fetch-depth: 0 - - - name: Setup Go environment - uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 - with: - go-version: "1.19.2" - - - name: Login to Azure - uses: ./.github/actions/azure_login - with: - azure_credentials: ${{ secrets.AZURE_E2E_CREDENTIALS }} - - - name: Create Azure resource group - id: az_resource_group_gen - shell: bash - run: | - uuid=$(cat /proc/sys/kernel/random/uuid) - name=e2e-test-${uuid%%-*} - az group create --location westus --name $name --tags e2e - echo "res_group_name=$name" >> $GITHUB_OUTPUT - - - name: Run Azure E2E test - uses: ./.github/actions/e2e_test - with: - workerNodesCount: "2" - controlNodesCount: "3" - cloudProvider: "azure" - azureClientSecret: ${{ secrets.AZURE_E2E_CLIENT_SECRET }} - azureResourceGroup: ${{ steps.az_resource_group_gen.outputs.res_group_name }} - test: "sonobuoy full" - - - name: Always terminate cluster - if: always() - continue-on-error: true - uses: ./.github/actions/constellation_destroy - - - name: Notify teams channel - if: ${{ failure() && github.ref == 'refs/heads/main' }} - continue-on-error: true - run: | - sudo apt-get install gettext-base -y - export TEAMS_JOB_NAME=azure - export TEAMS_RUN_ID=${{ github.run_id }} - envsubst < teams-payload.json > to-be-send.json - curl \ - -H "Content-Type: application/json" \ - -d @to-be-send.json \ - "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" - shell: bash - working-directory: .github/actions/e2e_test - - - name: Always destroy Azure resource group - if: always() - shell: bash - run: | - az group delete \ - --name ${{ steps.az_resource_group_gen.outputs.res_group_name }} \ - --force-deletion-types Microsoft.Compute/virtualMachineScaleSets \ - --force-deletion-types Microsoft.Compute/virtualMachines \ - --no-wait \ - --yes - - test-other-versions: - strategy: - matrix: - version: ["1.23", "1.25"] - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - with: - fetch-depth: 0 - - - name: Setup Go environment - uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 - with: - go-version: "1.19.2" - - - name: Login to Azure - uses: ./.github/actions/azure_login - with: - azure_credentials: ${{ secrets.AZURE_E2E_CREDENTIALS }} - - - name: Create Azure resource group - id: az_resource_group_gen - shell: bash - run: | - uuid=$(cat /proc/sys/kernel/random/uuid) - name=e2e-test-${uuid%%-*} - az group create --location westus --name $name --tags e2e - echo "res_group_name=$name" >> $GITHUB_OUTPUT - - - name: Run Azure E2E test - uses: ./.github/actions/e2e_test - with: - workerNodesCount: "2" - controlNodesCount: "3" - cloudProvider: "azure" - azureClientSecret: ${{ secrets.AZURE_E2E_CLIENT_SECRET }} - azureResourceGroup: ${{ steps.az_resource_group_gen.outputs.res_group_name }} - test: "sonobuoy quick" - kubernetesVersion: ${{ matrix.version }} - - - name: Always terminate cluster - if: always() - continue-on-error: true - uses: ./.github/actions/constellation_destroy - - - name: Notify teams channel - if: ${{ failure() && github.ref == 'refs/heads/main' }} - continue-on-error: true - run: | - sudo apt-get install gettext-base -y - export TEAMS_JOB_NAME=azure - export TEAMS_RUN_ID=${{ github.run_id }} - envsubst < teams-payload.json > to-be-send.json - curl \ - -H "Content-Type: application/json" \ - -d @to-be-send.json \ - "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" - shell: bash - working-directory: .github/actions/e2e_test - - - name: Always destroy Azure resource group - if: always() - shell: bash - run: | - az group delete \ - --name ${{ steps.az_resource_group_gen.outputs.res_group_name }} \ - --force-deletion-types Microsoft.Compute/virtualMachineScaleSets \ - --force-deletion-types Microsoft.Compute/virtualMachines \ - --no-wait \ - --yes diff --git a/.github/workflows/e2e-test-azure-weekly.yml b/.github/workflows/e2e-test-daily.yml similarity index 79% rename from .github/workflows/e2e-test-azure-weekly.yml rename to .github/workflows/e2e-test-daily.yml index dd583b532..097077f1b 100644 --- a/.github/workflows/e2e-test-azure-weekly.yml +++ b/.github/workflows/e2e-test-daily.yml @@ -1,11 +1,9 @@ -name: e2e Test Azure Weekly -# This workflow only runs once per week. It executes the full e2e tests on the latest-1 and latest-2 versions. Currently 1.23 and 1.22. -# It is executed every sunday at 19:00. +name: e2e test daily on: workflow_dispatch: schedule: - - cron: "0 19 * * 0" + - cron: "0 3 * * 2-5" # At 03:00 on every day-of-week from Tuesday through Friday. env: ARM_CLIENT_ID: "b657a00e-813a-4dc7-9b09-fa498a254d71" @@ -14,10 +12,10 @@ env: ARM_TENANT_ID: "adb650a8-5da3-4b15-b4b0-3daf65ff7626" jobs: - test-other-versions: + e2e-daily: strategy: matrix: - version: ["1.23", "1.25"] + provider: ["gcp", "azure"] runs-on: ubuntu-latest steps: - name: Check out repository @@ -31,29 +29,32 @@ jobs: go-version: "1.19.2" - name: Login to Azure + if: matrix.provider == 'azure' uses: ./.github/actions/azure_login with: azure_credentials: ${{ secrets.AZURE_E2E_CREDENTIALS }} - name: Create Azure resource group + if: matrix.provider == 'azure' id: az_resource_group_gen shell: bash run: | uuid=$(cat /proc/sys/kernel/random/uuid) name=e2e-test-${uuid%%-*} - az group create --location westus --name $name --tags e2e + az group create --location northeurope --name $name --tags e2e echo "res_group_name=$name" >> $GITHUB_OUTPUT - - name: Run Azure E2E test + - name: Run E2E test uses: ./.github/actions/e2e_test with: workerNodesCount: "2" controlNodesCount: "3" - cloudProvider: "azure" - test: "sonobuoy full" - kubernetesVersion: ${{ matrix.version }} + cloudProvider: ${{ matrix.provider }} azureClientSecret: ${{ secrets.AZURE_E2E_CLIENT_SECRET }} azureResourceGroup: ${{ steps.az_resource_group_gen.outputs.res_group_name }} + gcp_service_account_json: ${{ secrets.GCP_SERVICE_ACCOUNT }} + gcpClusterServiceAccountKey: ${{ secrets.GCP_CLUSTER_SERVICE_ACCOUNT }} + test: "sonobuoy full" - name: Always terminate cluster if: always() @@ -63,20 +64,20 @@ jobs: - name: Notify teams channel if: ${{ failure() && github.ref == 'refs/heads/main' }} continue-on-error: true + shell: bash + working-directory: .github/actions/e2e_test run: | sudo apt-get install gettext-base -y - export TEAMS_JOB_NAME=azure + export TEAMS_JOB_NAME=${{ matrix.provider }} export TEAMS_RUN_ID=${{ github.run_id }} envsubst < teams-payload.json > to-be-send.json curl \ -H "Content-Type: application/json" \ -d @to-be-send.json \ "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" - shell: bash - working-directory: .github/actions/e2e_test - name: Always destroy Azure resource group - if: always() + if: always() && matrix.provider == 'azure' shell: bash run: | az group delete \ diff --git a/.github/workflows/e2e-test-gcp-weekly.yml b/.github/workflows/e2e-test-gcp-weekly.yml deleted file mode 100644 index 5bb57cc71..000000000 --- a/.github/workflows/e2e-test-gcp-weekly.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: e2e Test GCP Weekly -# This workflow only runs once per week. It executes the full e2e tests on the latest-1 and latest-2 versions. Currently 1.23 and 1.22. -# It is executed every sunday at 00:00. - -on: - workflow_dispatch: - schedule: - - cron: "0 0 * * 0" -jobs: - test-other-versions: - strategy: - matrix: - version: ["1.23", "1.25"] - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - with: - fetch-depth: 0 - - - name: Setup Go environment - uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 - with: - go-version: "1.19.2" - - - name: Run GCP E2E test - uses: ./.github/actions/e2e_test - with: - workerNodesCount: "2" - controlNodesCount: "3" - cloudProvider: "gcp" - gcp_service_account_json: ${{ secrets.GCP_SERVICE_ACCOUNT }} - gcpClusterServiceAccountKey: ${{ secrets.GCP_CLUSTER_SERVICE_ACCOUNT }} - test: "sonobuoy full" - kubernetesVersion: ${{ matrix.version }} - - - name: Always terminate cluster - if: always() - continue-on-error: true - uses: ./.github/actions/constellation_destroy - - - name: Notify teams channel - if: ${{ failure() && github.ref == 'refs/heads/main' }} - continue-on-error: true - run: | - sudo apt-get install gettext-base -y - export TEAMS_JOB_NAME=gcp - export TEAMS_RUN_ID=${{ github.run_id }} - envsubst < teams-payload.json > to-be-send.json - curl \ - -H "Content-Type: application/json" \ - -d @to-be-send.json \ - "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" - shell: bash - working-directory: .github/actions/e2e_test diff --git a/.github/workflows/e2e-test-gcp.yml b/.github/workflows/e2e-test-gcp.yml deleted file mode 100644 index 387ca2c1d..000000000 --- a/.github/workflows/e2e-test-gcp.yml +++ /dev/null @@ -1,97 +0,0 @@ -name: e2e Test GCP - -on: - workflow_dispatch: - schedule: - - cron: "0 2 * * 2-6" -jobs: - test-default: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - with: - fetch-depth: 0 - - - name: Setup Go environment - uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 - with: - go-version: "1.19.2" - - - name: Run GCP E2E test - uses: ./.github/actions/e2e_test - with: - workerNodesCount: "2" - controlNodesCount: "3" - cloudProvider: "gcp" - gcp_service_account_json: ${{ secrets.GCP_SERVICE_ACCOUNT }} - gcpClusterServiceAccountKey: ${{ secrets.GCP_CLUSTER_SERVICE_ACCOUNT }} - test: "sonobuoy full" - - - name: Always terminate cluster - if: always() - continue-on-error: true - uses: ./.github/actions/constellation_destroy - - - name: Notify teams channel - if: ${{ failure() && github.ref == 'refs/heads/main' }} - continue-on-error: true - run: | - sudo apt-get install gettext-base -y - export TEAMS_JOB_NAME=gcp - export TEAMS_RUN_ID=${{ github.run_id }} - envsubst < teams-payload.json > to-be-send.json - curl \ - -H "Content-Type: application/json" \ - -d @to-be-send.json \ - "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" - shell: bash - working-directory: .github/actions/e2e_test - - test-other-versions: - strategy: - matrix: - version: ["1.23", "1.25"] - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - with: - fetch-depth: 0 - - - name: Setup Go environment - uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 - with: - go-version: "1.19.2" - - - name: Run GCP E2E test - uses: ./.github/actions/e2e_test - with: - workerNodesCount: "2" - controlNodesCount: "3" - cloudProvider: "gcp" - machineType: "n2d-standard-4" - gcp_service_account_json: ${{ secrets.GCP_SERVICE_ACCOUNT }} - gcpClusterServiceAccountKey: ${{ secrets.GCP_CLUSTER_SERVICE_ACCOUNT }} - test: "sonobuoy quick" - kubernetesVersion: ${{ matrix.version }} - - - name: Always terminate cluster - if: always() - continue-on-error: true - uses: ./.github/actions/constellation_destroy - - - name: Notify teams channel - if: ${{ failure() && github.ref == 'refs/heads/main' }} - continue-on-error: true - run: | - sudo apt-get install gettext-base -y - export TEAMS_JOB_NAME=gcp - export TEAMS_RUN_ID=${{ github.run_id }} - envsubst < teams-payload.json > to-be-send.json - curl \ - -H "Content-Type: application/json" \ - -d @to-be-send.json \ - "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" - shell: bash - working-directory: .github/actions/e2e_test diff --git a/.github/workflows/e2e-test-weekly.yml b/.github/workflows/e2e-test-weekly.yml new file mode 100644 index 000000000..dbfbb0652 --- /dev/null +++ b/.github/workflows/e2e-test-weekly.yml @@ -0,0 +1,100 @@ +name: e2e test weekly + +on: + workflow_dispatch: + schedule: + - cron: "0 3 * * 6" # At 03:00 on Saturday. + +env: + ARM_CLIENT_ID: "b657a00e-813a-4dc7-9b09-fa498a254d71" + ARM_CLIENT_SECRET: ${{ secrets.AZURE_E2E_CLIENT_SECRET }} + ARM_SUBSCRIPTION_ID: "0d202bbb-4fa7-4af8-8125-58c269a05435" + ARM_TENANT_ID: "adb650a8-5da3-4b15-b4b0-3daf65ff7626" + +jobs: + e2e-weekly: + strategy: + fail-fast: false + max-parallel: 5 + matrix: + test: ["sonobuoy full", "autoscaling"] + provider: ["gcp", "azure"] + version: ["1.23", "1.24", "1.25"] + exclude: + # Autoscaling test runs only on latest version. + - test: "autoscaling" + version: "1.23" + - test: "autoscaling" + version: "1.24" + + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 + with: + fetch-depth: 0 + + - name: Setup Go environment + uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 + with: + go-version: "1.19.2" + + - name: Login to Azure + if: matrix.provider == 'azure' + uses: ./.github/actions/azure_login + with: + azure_credentials: ${{ secrets.AZURE_E2E_CREDENTIALS }} + + - name: Create Azure resource group + if: matrix.provider == 'azure' + id: az_resource_group_gen + shell: bash + run: | + uuid=$(cat /proc/sys/kernel/random/uuid) + name=e2e-test-${uuid%%-*} + az group create --location northeurope --name $name --tags e2e + echo "res_group_name=$name" >> $GITHUB_OUTPUT + + - name: Run Azure E2E test + uses: ./.github/actions/e2e_test + with: + workerNodesCount: "2" + controlNodesCount: "3" + cloudProvider: ${{ matrix.provider }} + kubernetesVersion: ${{ matrix.version }} + azureClientSecret: ${{ secrets.AZURE_E2E_CLIENT_SECRET }} + azureResourceGroup: ${{ steps.az_resource_group_gen.outputs.res_group_name }} + gcp_service_account_json: ${{ secrets.GCP_SERVICE_ACCOUNT }} + gcpClusterServiceAccountKey: ${{ secrets.GCP_CLUSTER_SERVICE_ACCOUNT }} + test: ${{ matrix.test }} + + - name: Always terminate cluster + if: always() + continue-on-error: true + uses: ./.github/actions/constellation_destroy + + - name: Notify teams channel + if: ${{ failure() && github.ref == 'refs/heads/main' }} + continue-on-error: true + shell: bash + working-directory: .github/actions/e2e_test + run: | + sudo apt-get install gettext-base -y + export TEAMS_JOB_NAME=${{ matrix.provider }} + export TEAMS_RUN_ID=${{ github.run_id }} + envsubst < teams-payload.json > to-be-send.json + curl \ + -H "Content-Type: application/json" \ + -d @to-be-send.json \ + "${{ secrets.MS_TEAMS_WEBHOOK_URI }}" + + - name: Always destroy Azure resource group + if: always() && matrix.provider == 'azure' + shell: bash + run: | + az group delete \ + --name ${{ steps.az_resource_group_gen.outputs.res_group_name }} \ + --force-deletion-types Microsoft.Compute/virtualMachineScaleSets \ + --force-deletion-types Microsoft.Compute/virtualMachines \ + --no-wait \ + --yes