diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 593b966..2102c34 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -18,7 +18,7 @@ "DOCKER_GROUP_ID": "${localEnv:DOCKER_GROUP_ID}", "INTERACTIVE": "true", "UPSTREAM_REPO": "microsoft/AzureTRE", - "UPSTREAM_REPO_VERSION": "v0.28.0", + "UPSTREAM_REPO_VERSION": "v0.29.0", "GITHUB_TOKEN": "" } }, diff --git a/.github/actions/devcontainer_run_command/action.yml b/.github/actions/devcontainer_run_command/action.yml index fd0e992..12e0779 100644 --- a/.github/actions/devcontainer_run_command/action.yml +++ b/.github/actions/devcontainer_run_command/action.yml @@ -27,15 +27,15 @@ inputs: AAD_TENANT_ID: description: "The Tenant Id where the App is registered and the Test User is registered for the E2E Tests." required: false - TEST_ACCOUNT_CLIENT_ID: + TRE_ID: + description: "The TRE Id." + required: false + TEST_ACCOUNT_CLIENT_ID: # Used by Makefile to register bundles description: "The Test Automation Account Client Id used to interact with the API." required: false - TEST_ACCOUNT_CLIENT_SECRET: + TEST_ACCOUNT_CLIENT_SECRET: # Used by Makefile to register bundles description: "The Test Automation Account Client Secret used to interact with the API." required: false - TRE_ID: - description: "The TRE Id." - required: false TERRAFORM_STATE_CONTAINER_NAME: description: "The name of the container to store the Terraform state." required: false @@ -107,6 +107,10 @@ inputs: description: "The AppService plan sku used by tests" required: false default: "" + RESOURCE_PROCESSOR_VMSS_SKU: + description: "The SKU of the resource processor VMSS." + required: false + default: "Standard_B2s" RESOURCE_PROCESSOR_NUMBER_PROCESSES_PER_INSTANCE: description: "The number of resource processor processes to create for parallel operations" required: false @@ -181,7 +185,7 @@ runs: echo "AZURE_ENVIRONMENT=$azure_env" >> $GITHUB_ENV - name: Azure Login - uses: azure/login@v2 + uses: azure/login@532459ea530d8321f2fb9bb10d1e0bcf23869a43 # v3.0.0 if: contains(inputs.COMMAND, 'make bootstrap') != true with: client-id: ${{ inputs.AZURE_CLIENT_ID }} @@ -273,10 +277,10 @@ runs: -e API_CLIENT_ID="${{ inputs.API_CLIENT_ID }}" \ -e AAD_TENANT_ID="${{ inputs.AAD_TENANT_ID }}" \ -e TRE_ID="${{ inputs.TRE_ID }}" \ - -e TF_VAR_tre_id="${{ inputs.TRE_ID }}" \ - -e TRE_URL="${{ env.TRE_URL }}" \ -e TEST_ACCOUNT_CLIENT_ID="${{ inputs.TEST_ACCOUNT_CLIENT_ID }}" \ -e TEST_ACCOUNT_CLIENT_SECRET="${{ inputs.TEST_ACCOUNT_CLIENT_SECRET }}" \ + -e TF_VAR_tre_id="${{ inputs.TRE_ID }}" \ + -e TRE_URL="${{ env.TRE_URL }}" \ -e IS_API_SECURED=${{ inputs.IS_API_SECURED }} \ -e DOCKER_BUILDKIT=1 \ -e TF_VAR_stateful_resources_locked=${{ inputs.STATEFUL_RESOURCES_LOCKED }} \ @@ -291,6 +295,8 @@ runs: && inputs.RP_BUNDLE_VALUES) || '{}' }}' \ -e UI_SITE_NAME="${{ inputs.UI_SITE_NAME }}" \ -e UI_FOOTER_TEXT="${{ inputs.UI_FOOTER_TEXT }}" \ + -e TF_VAR_resource_processor_vmss_sku="${{ (inputs.RESOURCE_PROCESSOR_VMSS_SKU != '' + && inputs.RESOURCE_PROCESSOR_VMSS_SKU) || 'Standard_B2s' }}" \ -e TF_VAR_resource_processor_number_processes_per_instance="${{ (inputs.RESOURCE_PROCESSOR_NUMBER_PROCESSES_PER_INSTANCE != '' && inputs.RESOURCE_PROCESSOR_NUMBER_PROCESSES_PER_INSTANCE) || 5 }}" \ -e FIREWALL_SKU=${{ inputs.FIREWALL_SKU != '' && inputs.FIREWALL_SKU || 'Standard' }} \ diff --git a/.github/workflows/build_validation_develop.yml b/.github/workflows/build_validation_develop.yml index 319ad05..d6350aa 100644 --- a/.github/workflows/build_validation_develop.yml +++ b/.github/workflows/build_validation_develop.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: # Full git history is needed to get a proper list of # changed files within `super-linter` @@ -44,7 +44,7 @@ jobs: # the slim image is 2GB smaller and we don't use the extra stuff # Moved this after the Terraform checks above due something similar to this issue: # https://github.com/github/super-linter/issues/2433 - uses: github/super-linter/slim@v5.0.0 + uses: super-linter/super-linter/slim@4ce20838b8ab83717e78138c5b3a1407148e0918 # v8.7.0 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: main @@ -59,7 +59,7 @@ jobs: VALIDATE_DOCKERFILE_HADOLINT: true - name: Workspace Tags - uses: github/super-linter/slim@v5.0.0 + uses: super-linter/super-linter/slim@4ce20838b8ab83717e78138c5b3a1407148e0918 # v8.7.0 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: main @@ -69,7 +69,7 @@ jobs: FILTER_REGEX_INCLUDE: "./templates/workspaces/.*" - name: Workspace Services Tags - uses: github/super-linter/slim@v5.0.0 + uses: super-linter/super-linter/slim@4ce20838b8ab83717e78138c5b3a1407148e0918 # v8.7.0 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: main @@ -80,7 +80,7 @@ jobs: FILTER_REGEX_EXCLUDE: ".*user_resource.*" - name: User Resources Tags - uses: github/super-linter/slim@v5.0.0 + uses: super-linter/super-linter/slim@4ce20838b8ab83717e78138c5b3a1407148e0918 # v8.7.0 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: main @@ -90,7 +90,7 @@ jobs: FILTER_REGEX_INCLUDE: "./templates/workspace_services/.*/user_resources/.*" - name: Shared Services Tags - uses: github/super-linter/slim@v5.0.0 + uses: super-linter/super-linter/slim@4ce20838b8ab83717e78138c5b3a1407148e0918 # v8.7.0 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: main diff --git a/.github/workflows/clean_validation_envs.yml b/.github/workflows/clean_validation_envs.yml index 0cae184..c5c4604 100644 --- a/.github/workflows/clean_validation_envs.yml +++ b/.github/workflows/clean_validation_envs.yml @@ -17,14 +17,14 @@ jobs: environment: Dev timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: # This is CRITICAL since we're making decisions based on branch existence fetch-depth: 0 persist-credentials: false - name: Azure Login - uses: azure/login@v2 + uses: azure/login@532459ea530d8321f2fb9bb10d1e0bcf23869a43 # v3.0.0 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} diff --git a/.github/workflows/deploy_tre.yml b/.github/workflows/deploy_tre.yml index 68f5fb5..f98a36a 100644 --- a/.github/workflows/deploy_tre.yml +++ b/.github/workflows/deploy_tre.yml @@ -52,9 +52,9 @@ jobs: MGMT_RESOURCE_GROUP_NAME: ${{ secrets.MGMT_RESOURCE_GROUP_NAME }} MGMT_STORAGE_ACCOUNT_NAME: ${{ secrets.MGMT_STORAGE_ACCOUNT_NAME }} SWAGGER_UI_CLIENT_ID: ${{ secrets.SWAGGER_UI_CLIENT_ID }} - TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" - TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" TRE_ID: ${{ secrets.TRE_ID }} + TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" # Used by Makefile to register bundles + TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" # Used by Makefile to register bundles CI_CACHE_ACR_NAME: ${{ secrets.ACR_NAME }} ENCRYPTION_KV_NAME: ${{ secrets.ENCRYPTION_KV_NAME }} EXTERNAL_KEY_STORE_ID: ${{ secrets.EXTERNAL_KEY_STORE_ID }} diff --git a/.github/workflows/deploy_tre_branch.yml b/.github/workflows/deploy_tre_branch.yml index 29a02ba..af58075 100644 --- a/.github/workflows/deploy_tre_branch.yml +++ b/.github/workflows/deploy_tre_branch.yml @@ -83,9 +83,9 @@ jobs: MGMT_RESOURCE_GROUP_NAME: ${{ format('rg-tre{0}-mgmt', needs.prepare-not-main.outputs.refid) }} MGMT_STORAGE_ACCOUNT_NAME: ${{ format('tre{0}mgmt', needs.prepare-not-main.outputs.refid) }} SWAGGER_UI_CLIENT_ID: ${{ secrets.SWAGGER_UI_CLIENT_ID }} + TRE_ID: ${{ format('tre{0}', needs.prepare-not-main.outputs.refid) }} TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" - TRE_ID: ${{ format('tre{0}', needs.prepare-not-main.outputs.refid) }} CI_CACHE_ACR_NAME: ${{ secrets.ACR_NAME }} ENCRYPTION_KV_NAME: ${{ format('tre{0}mgmt', needs.prepare-not-main.outputs.refid) }} EXTERNAL_KEY_STORE_ID: ${{ secrets.EXTERNAL_KEY_STORE_ID }} diff --git a/.github/workflows/deploy_tre_reusable.yml b/.github/workflows/deploy_tre_reusable.yml index 143db6a..882c858 100644 --- a/.github/workflows/deploy_tre_reusable.yml +++ b/.github/workflows/deploy_tre_reusable.yml @@ -74,15 +74,15 @@ on: # yamllint disable-line rule:truthy SWAGGER_UI_CLIENT_ID: description: "" required: true - TEST_ACCOUNT_CLIENT_ID: + TRE_ID: + description: "" + required: true + TEST_ACCOUNT_CLIENT_ID: # Used by Makefile to register bundles description: Client ID for test automation account used for unattended bundle registration required: true - TEST_ACCOUNT_CLIENT_SECRET: + TEST_ACCOUNT_CLIENT_SECRET: # Used by Makefile to register bundles description: Client secret for test automation account used for unattended bundle registration required: true - TRE_ID: - description: "" - required: true CI_CACHE_ACR_NAME: description: "" required: false @@ -181,7 +181,7 @@ jobs: fi - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -189,10 +189,10 @@ jobs: ref: ${{ inputs.prRef }} - name: Set up Docker BuildKit - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: Azure Login - uses: azure/login@v2 + uses: azure/login@532459ea530d8321f2fb9bb10d1e0bcf23869a43 # v3.0.0 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} @@ -282,7 +282,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -308,7 +308,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -334,7 +334,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -438,7 +438,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -491,7 +491,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -544,7 +544,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -570,9 +570,9 @@ jobs: ACR_NAME: ${{ secrets.ACR_NAME }} API_CLIENT_ID: "${{ secrets.API_CLIENT_ID }}" AAD_TENANT_ID: "${{ secrets.AAD_TENANT_ID }}" + TRE_ID: ${{ secrets.TRE_ID }} TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" - TRE_ID: ${{ secrets.TRE_ID }} LOCATION: ${{ vars.LOCATION }} BUNDLE_TYPE: ${{ matrix.BUNDLE_TYPE }} @@ -610,7 +610,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -636,9 +636,9 @@ jobs: ACR_NAME: ${{ secrets.ACR_NAME }} API_CLIENT_ID: "${{ secrets.API_CLIENT_ID }}" AAD_TENANT_ID: "${{ secrets.AAD_TENANT_ID }}" + TRE_ID: ${{ secrets.TRE_ID }} TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" - TRE_ID: ${{ secrets.TRE_ID }} LOCATION: ${{ vars.LOCATION }} BUNDLE_TYPE: ${{ matrix.BUNDLE_TYPE }} @@ -666,7 +666,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -692,9 +692,9 @@ jobs: ACR_NAME: ${{ secrets.ACR_NAME }} API_CLIENT_ID: "${{ secrets.API_CLIENT_ID }}" AAD_TENANT_ID: "${{ secrets.AAD_TENANT_ID }}" + TRE_ID: ${{ secrets.TRE_ID }} TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" - TRE_ID: ${{ secrets.TRE_ID }} LOCATION: ${{ vars.LOCATION }} BUNDLE_TYPE: ${{ matrix.BUNDLE_TYPE }} WORKSPACE_SERVICE_NAME: ${{ matrix.WORKSPACE_SERVICE_NAME }} @@ -706,7 +706,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -725,9 +725,9 @@ jobs: AZURE_ENVIRONMENT: ${{ vars.AZURE_ENVIRONMENT }} API_CLIENT_ID: "${{ secrets.API_CLIENT_ID }}" AAD_TENANT_ID: "${{ secrets.AAD_TENANT_ID }}" + TRE_ID: ${{ secrets.TRE_ID }} TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" - TRE_ID: ${{ secrets.TRE_ID }} LOCATION: ${{ vars.LOCATION }} - name: State Store Migrations @@ -742,9 +742,9 @@ jobs: AZURE_ENVIRONMENT: ${{ vars.AZURE_ENVIRONMENT }} API_CLIENT_ID: "${{ secrets.API_CLIENT_ID }}" AAD_TENANT_ID: "${{ secrets.AAD_TENANT_ID }}" + TRE_ID: ${{ secrets.TRE_ID }} TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" - TRE_ID: ${{ secrets.TRE_ID }} LOCATION: ${{ vars.LOCATION }} TERRAFORM_STATE_CONTAINER_NAME: ${{ vars.TERRAFORM_STATE_CONTAINER_NAME }} MGMT_RESOURCE_GROUP_NAME: ${{ secrets.MGMT_RESOURCE_GROUP_NAME }} @@ -757,7 +757,7 @@ jobs: environment: ${{ inputs.environmentName }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false # if the following values are missing (i.e. not triggered via comment workflow) @@ -776,6 +776,8 @@ jobs: API_CLIENT_ID: "${{ secrets.API_CLIENT_ID }}" AAD_TENANT_ID: "${{ secrets.AAD_TENANT_ID }}" TRE_ID: ${{ secrets.TRE_ID }} + TEST_ACCOUNT_CLIENT_ID: "${{ secrets.TEST_ACCOUNT_CLIENT_ID }}" + TEST_ACCOUNT_CLIENT_SECRET: "${{ secrets.TEST_ACCOUNT_CLIENT_SECRET }}" LOCATION: ${{ vars.LOCATION }} TERRAFORM_STATE_CONTAINER_NAME: ${{ vars.TERRAFORM_STATE_CONTAINER_NAME }} MGMT_RESOURCE_GROUP_NAME: ${{ secrets.MGMT_RESOURCE_GROUP_NAME }}