Skip to content

Merge pull request #110 from DFE-Digital/559-add-install-konduit-to-n… #578

Merge pull request #110 from DFE-Digital/559-add-install-konduit-to-n…

Merge pull request #110 from DFE-Digital/559-add-install-konduit-to-n… #578

name: Deploy Cluster
on:
push:
branches:
- main
pull_request:
branches:
- main
types:
- labeled
- synchronize
- reopened
- opened
- converted_to_draft
workflow_dispatch:
jobs:
validate-terraform:
name: Validate Terraform
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Validate cluster/terraform_aks_cluster
uses: ./.github/actions/validate-terraform
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
terraform_root_folder: cluster/terraform_aks_cluster
- name: Validate cluster/terraform_kubernetes
uses: ./.github/actions/validate-terraform
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
terraform_root_folder: cluster/terraform_kubernetes
- name: Validate custom_domains/terraform/infrastructure
uses: ./.github/actions/validate-terraform
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
terraform_root_folder: custom_domains/terraform/infrastructure
- name: Validate templates/new_service/terraform/application
uses: ./.github/actions/validate-terraform
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
terraform_root_folder: templates/new_service/terraform/application
terrafile_environment: development
- name: Validate templates/new_service/terraform/domains/infrastructure
uses: ./.github/actions/validate-terraform
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
terraform_root_folder: templates/new_service/terraform/domains/infrastructure
terrafile_environment: zones
- name: Validate templates/new_service/terraform/domains/environment_domains
uses: ./.github/actions/validate-terraform
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
terraform_root_folder: templates/new_service/terraform/domains/environment_domains
terrafile_environment: development
deploy:
name: Deploy Cluster
if: github.ref == 'refs/heads/main'
concurrency: deploy_${{ matrix.environment }}
environment:
name: ${{ matrix.environment }}
needs: [validate-terraform]
runs-on: ubuntu-latest
strategy:
max-parallel: 1
matrix:
environment: [platform-test, test, production]
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/deploy-environment
with:
azure_credentials: ${{ secrets.AZURE_CREDENTIALS }}
environment_name: ${{ matrix.environment }}
update-domains:
name: Update DNS domains
if: github.ref == 'refs/heads/main'
concurrency: update_domains_${{ matrix.environment }}
environment:
name: ${{ matrix.environment }}
needs: [deploy]
runs-on: ubuntu-latest
strategy:
max-parallel: 1
matrix:
environment: [dev-domain, prod-domain]
steps:
- uses: actions/checkout@v3
- uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.3.1
terraform_wrapper: false
- name: Mask ARM variables
shell: pwsh
run: |
$AZURE_CREDENTIALS_JSON = '${{secrets.AZURE_CREDENTIALS}}'
$ARM_CLIENT_ID = ( $AZURE_CREDENTIALS_JSON | ConvertFrom-Json ).clientId
Write-Output "::add-mask::$ARM_CLIENT_ID"
"ARM_CLIENT_ID=$ARM_CLIENT_ID" >> $env:GITHUB_ENV
$ARM_CLIENT_SECRET = ( $AZURE_CREDENTIALS_JSON | ConvertFrom-Json ).clientSecret
Write-Output "::add-mask::$ARM_CLIENT_SECRET"
"ARM_CLIENT_SECRET=$ARM_CLIENT_SECRET" >> $env:GITHUB_ENV
$ARM_SUBSCRIPTION_ID = ( $AZURE_CREDENTIALS_JSON | ConvertFrom-Json ).subscriptionId
Write-Output "::add-mask::$ARM_SUBSCRIPTION_ID"
"ARM_SUBSCRIPTION_ID=$ARM_SUBSCRIPTION_ID" >> $env:GITHUB_ENV
$ARM_TENANT_ID = ( $AZURE_CREDENTIALS_JSON | ConvertFrom-Json ).tenantId
Write-Output "::add-mask::$ARM_TENANT_ID"
"ARM_TENANT_ID=$ARM_TENANT_ID" >> $env:GITHUB_ENV
- name: Update DNS in ${{ matrix.environment }}
run: |
make ci ${{ matrix.environment }} domains-infra-apply
shell: bash
env:
TF_VAR_azure_sp_credentials_json: ${{ secrets.AZURE_CREDENTIALS }}