From 337f9e85ee535b3bac53b837fd2b74335c66489b Mon Sep 17 00:00:00 2001 From: Are Almaas Date: Mon, 14 Oct 2024 16:35:38 +0200 Subject: [PATCH] feat(infrastructure): create new yt01 app environment --- .../{perf.bicepparam => yt01.bicepparam} | 2 +- .../{perf.bicepparam => yt01.bicepparam} | 2 +- .../{perf.bicepparam => yt01.bicepparam} | 2 +- .../{perf.bicepparam => yt01.bicepparam} | 2 +- .../{perf.bicepparam => yt01.bicepparam} | 2 +- .github/workflows/ci-cd-yt01.yml | 139 +++++++++--------- .github/workflows/dispatch-apps.yml | 1 + 7 files changed, 75 insertions(+), 75 deletions(-) rename .azure/applications/graphql/{perf.bicepparam => yt01.bicepparam} (95%) rename .azure/applications/sync-subject-resource-mappings-job/{perf.bicepparam => yt01.bicepparam} (94%) rename .azure/applications/web-api-eu/{perf.bicepparam => yt01.bicepparam} (95%) rename .azure/applications/web-api-migration-job/{perf.bicepparam => yt01.bicepparam} (91%) rename .azure/applications/web-api-so/{perf.bicepparam => yt01.bicepparam} (95%) diff --git a/.azure/applications/graphql/perf.bicepparam b/.azure/applications/graphql/yt01.bicepparam similarity index 95% rename from .azure/applications/graphql/perf.bicepparam rename to .azure/applications/graphql/yt01.bicepparam index 1b94e4b64..e5a26345b 100644 --- a/.azure/applications/graphql/perf.bicepparam +++ b/.azure/applications/graphql/yt01.bicepparam @@ -1,6 +1,6 @@ using './main.bicep' -param environment = 'perf' +param environment = 'yt01' param location = 'norwayeast' param apimIp = '51.13.86.131' // todo: replace with APIM IP for YT param imageTag = readEnvironmentVariable('IMAGE_TAG') diff --git a/.azure/applications/sync-subject-resource-mappings-job/perf.bicepparam b/.azure/applications/sync-subject-resource-mappings-job/yt01.bicepparam similarity index 94% rename from .azure/applications/sync-subject-resource-mappings-job/perf.bicepparam rename to .azure/applications/sync-subject-resource-mappings-job/yt01.bicepparam index 8a35659f0..d742f9760 100644 --- a/.azure/applications/sync-subject-resource-mappings-job/perf.bicepparam +++ b/.azure/applications/sync-subject-resource-mappings-job/yt01.bicepparam @@ -1,6 +1,6 @@ using './main.bicep' -param environment = 'perf' +param environment = 'yt01' param location = 'norwayeast' param imageTag = readEnvironmentVariable('IMAGE_TAG') param jobSchedule = '*/5 * * * *' // Runs every 5 minutes diff --git a/.azure/applications/web-api-eu/perf.bicepparam b/.azure/applications/web-api-eu/yt01.bicepparam similarity index 95% rename from .azure/applications/web-api-eu/perf.bicepparam rename to .azure/applications/web-api-eu/yt01.bicepparam index 1b94e4b64..e5a26345b 100644 --- a/.azure/applications/web-api-eu/perf.bicepparam +++ b/.azure/applications/web-api-eu/yt01.bicepparam @@ -1,6 +1,6 @@ using './main.bicep' -param environment = 'perf' +param environment = 'yt01' param location = 'norwayeast' param apimIp = '51.13.86.131' // todo: replace with APIM IP for YT param imageTag = readEnvironmentVariable('IMAGE_TAG') diff --git a/.azure/applications/web-api-migration-job/perf.bicepparam b/.azure/applications/web-api-migration-job/yt01.bicepparam similarity index 91% rename from .azure/applications/web-api-migration-job/perf.bicepparam rename to .azure/applications/web-api-migration-job/yt01.bicepparam index 0844d51e7..ebf1e4731 100644 --- a/.azure/applications/web-api-migration-job/perf.bicepparam +++ b/.azure/applications/web-api-migration-job/yt01.bicepparam @@ -1,6 +1,6 @@ using './main.bicep' -param environment = 'perf' +param environment = 'yt01' param location = 'norwayeast' param imageTag = readEnvironmentVariable('IMAGE_TAG') diff --git a/.azure/applications/web-api-so/perf.bicepparam b/.azure/applications/web-api-so/yt01.bicepparam similarity index 95% rename from .azure/applications/web-api-so/perf.bicepparam rename to .azure/applications/web-api-so/yt01.bicepparam index 1b94e4b64..e5a26345b 100644 --- a/.azure/applications/web-api-so/perf.bicepparam +++ b/.azure/applications/web-api-so/yt01.bicepparam @@ -1,6 +1,6 @@ using './main.bicep' -param environment = 'perf' +param environment = 'yt01' param location = 'norwayeast' param apimIp = '51.13.86.131' // todo: replace with APIM IP for YT param imageTag = readEnvironmentVariable('IMAGE_TAG') diff --git a/.github/workflows/ci-cd-yt01.yml b/.github/workflows/ci-cd-yt01.yml index 2e48af37a..655fac2fa 100644 --- a/.github/workflows/ci-cd-yt01.yml +++ b/.github/workflows/ci-cd-yt01.yml @@ -30,7 +30,7 @@ jobs: dockerImageBaseName: ghcr.io/digdir/dialogporten- version: ${{ needs.get-current-version.outputs.version }} - deploy-infra-yt01: + deploy-infra: name: Deploy infra to yt01 if: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasAzureChanges == 'true' }} needs: [get-current-version, check-for-changes] @@ -48,75 +48,74 @@ jobs: region: norwayeast version: ${{ needs.get-current-version.outputs.version }} - # todo: enable when we have infrastructure set up for yt01 - # deploy-apps-yt01: - # name: Deploy apps to yt01 - # needs: - # [get-current-version, check-for-changes, deploy-infra-yt01, publish] - # # we want deployment of apps to be dependent on deployment of infrastructure, but if infrastructure is skipped, we still want to deploy the apps - # if: ${{ always() && !failure() && !cancelled() && (github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasBackendChanges == 'true') }} - # uses: ./.github/workflows/workflow-deploy-apps.yml - # secrets: - # AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - # AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - # AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - # # todo: consider resolving these in another way since they are created in the infra-step - # AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} - # AZURE_ENVIRONMENT_KEY_VAULT_NAME: ${{ secrets.AZURE_ENVIRONMENT_KEY_VAULT_NAME }} - # AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }} - # AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }} - # AZURE_APP_CONFIGURATION_NAME: ${{ secrets.AZURE_APP_CONFIGURATION_NAME }} - # with: - # environment: yt01 - # region: norwayeast - # version: ${{ needs.get-current-version.outputs.version }} - # runMigration: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasMigrationChanges == 'true' }} + deploy-apps: + name: Deploy apps to yt01 + needs: + [get-current-version, check-for-changes, deploy-infra, publish] + # we want deployment of apps to be dependent on deployment of infrastructure, but if infrastructure is skipped, we still want to deploy the apps + if: ${{ always() && !failure() && !cancelled() && (github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasBackendChanges == 'true') }} + uses: ./.github/workflows/workflow-deploy-apps.yml + secrets: + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + # todo: consider resolving these in another way since they are created in the infra-step + AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} + AZURE_ENVIRONMENT_KEY_VAULT_NAME: ${{ secrets.AZURE_ENVIRONMENT_KEY_VAULT_NAME }} + AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }} + AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }} + AZURE_APP_CONFIGURATION_NAME: ${{ secrets.AZURE_APP_CONFIGURATION_NAME }} + with: + environment: yt01 + region: norwayeast + version: ${{ needs.get-current-version.outputs.version }} + runMigration: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasMigrationChanges == 'true' }} - # deploy-slack-notifier-yt01: - # name: Deploy slack notifier (yt01) - # needs: [check-for-changes] - # if: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasSlackNotifierChanges == 'true' }} - # uses: ./.github/workflows/workflow-deploy-function.yml - # secrets: - # AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - # AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - # AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - # # todo: resolve this automatically, or use tags - # AZURE_FUNCTION_APP_NAME: ${{ secrets.AZURE_SLACK_NOTIFIER_FUNCTION_APP_NAME }} - # with: - # function-app-name: "slack-notifier" - # function-project-path: "./src/Digdir.Tool.Dialogporten.SlackNotifier" - # environment: yt01 + deploy-slack-notifier: + name: Deploy slack notifier (yt01) + needs: [check-for-changes] + if: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasSlackNotifierChanges == 'true' }} + uses: ./.github/workflows/workflow-deploy-function.yml + secrets: + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + # todo: resolve this automatically, or use tags + AZURE_FUNCTION_APP_NAME: ${{ secrets.AZURE_SLACK_NOTIFIER_FUNCTION_APP_NAME }} + with: + function-app-name: "slack-notifier" + function-project-path: "./src/Digdir.Tool.Dialogporten.SlackNotifier" + environment: yt01 - # run-e2e-tests: - # name: "Run K6 functional end-to-end tests" - # # we want the end-to-end tests to be dependent on deployment of infrastructure and apps, but if infrastructure is skipped, we still want to run the tests - # if: ${{ always() && !failure() && !cancelled() && (github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasBackendChanges == 'true') }} - # needs: [deploy-apps-yt01, check-for-changes] - # uses: ./.github/workflows/workflow-run-k6-tests.yml - # secrets: - # TOKEN_GENERATOR_USERNAME: ${{ secrets.TOKEN_GENERATOR_USERNAME }} - # TOKEN_GENERATOR_PASSWORD: ${{ secrets.TOKEN_GENERATOR_PASSWORD }} - # with: - # environment: yt01 - # apiVersion: v1 - # testSuitePath: tests/k6/suites/all-single-pass.js - # permissions: - # checks: write - # pull-requests: write + run-e2e-tests: + name: "Run K6 functional end-to-end tests" + # we want the end-to-end tests to be dependent on deployment of infrastructure and apps, but if infrastructure is skipped, we still want to run the tests + if: ${{ always() && !failure() && !cancelled() && (github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasBackendChanges == 'true') }} + needs: [deploy-apps, check-for-changes] + uses: ./.github/workflows/workflow-run-k6-tests.yml + secrets: + TOKEN_GENERATOR_USERNAME: ${{ secrets.TOKEN_GENERATOR_USERNAME }} + TOKEN_GENERATOR_PASSWORD: ${{ secrets.TOKEN_GENERATOR_PASSWORD }} + with: + environment: yt01 + apiVersion: v1 + testSuitePath: tests/k6/suites/all-single-pass.js + permissions: + checks: write + pull-requests: write - # send-slack-message-on-failure: - # name: Send Slack message on failure - # needs: [deploy-infra-yt01, deploy-apps-yt01, deploy-slack-notifier-yt01, run-e2e-tests, publish] - # if: ${{ always() && failure() && !cancelled() }} - # uses: ./.github/workflows/workflow-send-ci-cd-status-slack-message.yml - # with: - # environment: yt01 - # infra_status: ${{ needs.deploy-infra-yt01.result }} - # apps_status: ${{ needs.deploy-apps-yt01.result }} - # slack_notifier_status: ${{ needs.deploy-slack-notifier-yt01.result }} - # e2e_tests_status: ${{ needs.run-e2e-tests.result }} - # publish_status: ${{ needs.publish.result }} - # secrets: - # SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - # SLACK_CHANNEL_ID: ${{ secrets.SLACK_CHANNEL_ID_FOR_CI_CD_STATUS }} + send-slack-message-on-failure: + name: Send Slack message on failure + needs: [deploy-infra, deploy-apps, deploy-slack-notifier, run-e2e-tests, publish] + if: ${{ always() && failure() && !cancelled() }} + uses: ./.github/workflows/workflow-send-ci-cd-status-slack-message.yml + with: + environment: yt01 + infra_status: ${{ needs.deploy-infra.result }} + apps_status: ${{ needs.deploy-apps.result }} + slack_notifier_status: ${{ needs.deploy-slack-notifier.result }} + e2e_tests_status: ${{ needs.run-e2e-tests.result }} + publish_status: ${{ needs.publish.result }} + secrets: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} + SLACK_CHANNEL_ID: ${{ secrets.SLACK_CHANNEL_ID_FOR_CI_CD_STATUS }} diff --git a/.github/workflows/dispatch-apps.yml b/.github/workflows/dispatch-apps.yml index cadcfc066..6a74e6829 100644 --- a/.github/workflows/dispatch-apps.yml +++ b/.github/workflows/dispatch-apps.yml @@ -10,6 +10,7 @@ on: type: choice options: - test + - yt01 - staging - prod version: