diff --git a/.github/workflows/force-apply.yml b/.github/workflows/force-apply.yml deleted file mode 100644 index 6ab39f9..0000000 --- a/.github/workflows/force-apply.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: Entur/Terraform/Apply - -on: - workflow_call: - inputs: - directory: - description: "Path to Terraform Directory" - type: string - default: "terraform" - cloud_provider: - description: "Which cloud service provider to use - Google Cloud: 'gcp' or Azure: 'az'" - type: string - default: "gcp" - environment: - type: string - description: "GitHub environment to use Google Cloud: (dev, tst, prd) or Azure: (az-dev, az-test, az-prod)" - required: true - workspace: - description: "The terraform workspace, defaults to environment input" - type: string - default: "env" - version: - description: "Terraform version" - type: string - default: "latest" - gcp_project_id: - type: string - description: "N/A" - gcp_cluster_name: - type: string - description: "N/A" - timeout_minutes: - description: "Job timeout in minutes" - type: number - default: 60 - outputs: - apply-log: - description: "Terraform apply log" - value: ${{ jobs.terraform-apply.outputs.apply }} - -jobs: - terraform-apply: - runs-on: ubuntu-24.04 - outputs: - apply: ${{ steps.force-apply.outputs.apply }} - timeout-minutes: ${{ inputs.timeout_minutes }} - environment: ${{ inputs.environment }} - env: - GHA_TERRAFORM_DIRECTORY: ${{ inputs.directory }} - GHA_TERRAFORM_CLOUD_PROVIDER: ${{ inputs.cloud_provider }} - GHA_TERRAFORM_ENVIRONMENT: ${{ inputs.environment }} - GHA_TERRAFORM_WORKSPACE: ${{ inputs.workspace }} - GHA_TERRAFORM_VERSION: ${{ inputs.version }} - GHA_TERRAFORM_CLUSTER_NAME: ${{ inputs.cluster_name }} - GHA_WORKLOAD_IDENTITY_PROVIDER: ${{ vars.WORKLOAD_IDENTITY_PROVIDER }} - GHA_SERVICE_ACCOUNT: ${{ vars.SERVICE_ACCOUNT }} - AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} - AZURE_CLUSTER_NAME: ${{ vars.AZURE_CLUSTER_NAME }} - AZURE_CLUSTER_RESOURCE_GROUP: ${{ vars.AZURE_CLUSTER_RESOURCE_GROUP }} - permissions: - contents: read - id-token: write - pull-requests: write - steps: - - id: set-workspace - name: Set Terraform Workspace - shell: bash - if: env.GHA_TERRAFORM_WORKSPACE == 'env' - run: | - echo "GHA_TERRAFORM_WORKSPACE=${GHA_TERRAFORM_ENVIRONMENT}" >> $GITHUB_ENV - - id: set-clustername - name: Set Cluster Name - shell: bash - if: inputs.cloud_provider == 'az' - env: - GHA_TERRAFORM_CLUSTER_NAME: ${{ env.AZURE_CLUSTER_NAME }} - run: | - if [ -z "${{ env.GHA_TERRAFORM_CLUSTER_NAME }}" ]; then - echo "GitHub repository environment variable AZURE_CLUSTER_NAME is not set. Setup using tf-azure-apps. Exiting." - exit 1 - fi - echo "GHA_TERRAFORM_CLUSTER_NAME=${GHA_TERRAFORM_CLUSTER_NAME}" >> $GITHUB_ENV - - name: checkout - uses: actions/checkout@v4 - - - uses: entur/gha-meta/.github/actions/cloud-auth@v1 - with: - environment: ${{ env.GHA_TERRAFORM_ENVIRONMENT }} - cloud_provider: ${{ env.GHA_TERRAFORM_CLOUD_PROVIDER }} - gcp_workload_identity_provider: ${{ env.GHA_WORKLOAD_IDENTITY_PROVIDER }} - gcp_service_account: ${{ env.GHA_SERVICE_ACCOUNT }} - azure_client_id: ${{ env.AZURE_CLIENT_ID }} - azure_tenant_id: ${{ env.AZURE_TENANT_ID }} - azure_subscription_id: ${{ env.AZURE_SUBSCRIPTION_ID }} - - - uses: entur/gha-meta/.github/actions/k8s-auth@v1 - with: - environment: ${{ env.GHA_TERRAFORM_ENVIRONMENT }} - cloud_provider: ${{ env.GHA_TERRAFORM_CLOUD_PROVIDER }} - gcp_project_id: ${{ inputs.project_id }} - gcp_cluster_name: ${{ env.GHA_TERRAFORM_CLUSTER_NAME }} - azure_cluster_resource_group: ${{ env.AZURE_CLUSTER_RESOURCE_GROUP }} - - - name: Setup Terraform - uses: hashicorp/setup-terraform@v3 - id: setup - with: - terraform_version: ${{ env.GHA_TERRAFORM_VERSION }} - terraform_wrapper: false - - - name: Terraform Init - id: init - working-directory: ${{ env.GHA_TERRAFORM_DIRECTORY }} - shell: bash - run: | - terraform version - terraform init - - - name: Terraform Workspace - id: workspace - working-directory: ${{ env.GHA_TERRAFORM_DIRECTORY }} - shell: bash - run: | - terraform workspace select -or-create=true ${GHA_TERRAFORM_WORKSPACE} - - - name: Terraform Apply - id: force-apply - working-directory: ${{ env.GHA_TERRAFORM_DIRECTORY }} - shell: bash - run: | - delimiter="$(openssl rand -hex 10)" - ENV=$(echo "${GHA_TERRAFORM_ENVIRONMENT}"| awk '{print toupper($0)}') - echo "apply<<${delimiter}" >> $GITHUB_OUTPUT - echo "## Terraform Apply $ENV" >> $GITHUB_OUTPUT - echo "The result of \`terraform apply\` in environment: \`$ENV\`" >> $GITHUB_OUTPUT - echo '```tf' >> $GITHUB_OUTPUT - terraform apply --auto-approve -var-file=env/${GHA_TERRAFORM_ENVIRONMENT}.tfvars -input=false -no-color >> $GITHUB_OUTPUT - echo '```' >> $GITHUB_OUTPUT - echo "${delimiter}" >> $GITHUB_OUTPUT - - - name: Terraform Apply Status Check - if: steps.force-apply.outcome == 'failure' - run: exit 1