Skip to content

Terraform Destroy

Terraform Destroy #13

name: Terraform Destroy Workflow
on:
workflow_dispatch:
inputs:
confirm_destroy:
description: 'Type "destroy" to confirm destruction'
required: true
type: string
permissions:
contents: read
actions: write
jobs:
alb_destroy:
name: 'Destroy ALB'
runs-on: ubuntu-latest
if: github.event.inputs.confirm_destroy == 'destroy'
defaults:
run:
working-directory: ./terraform
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.5.0
- name: Terraform Init
run: |
terraform init \
-backend-config="bucket=${{ secrets.TERRAFORM_STATE_BUCKET }}" \
-backend-config="key=${{ secrets.TERRAFORM_STATE_KEY }}" \
-backend-config="region=${{ secrets.AWS_REGION }}" \
-backend-config="encrypt=true"
- name: Terraform Destroy ALB
run: |
terraform destroy \
-target="module.alb.aws_lb.this" \
-var="domain_name=${{ vars.DOMAIN_NAME }}" \
-var="project_name=${{ vars.PROJECT_NAME }}" \
-var="record_name=${{ vars.RECORD_NAME }}" \
-var="task_role_arn=${{ secrets.TASK_ROLE_ARN }}" \
-var="execution_role_arn=${{ secrets.EXECUTION_ROLE_ARN }}" \
-var="container_image=${{ secrets.CONTAINER_IMAGE }}" \
-auto-approve
full_destroy:
name: 'Full destroy'
runs-on: ubuntu-latest
needs: alb_destroy
if: github.event.inputs.confirm_destroy == 'destroy'
defaults:
run:
working-directory: ./terraform
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.5.0
- name: Terraform Init
run: |
terraform init \
-backend-config="bucket=${{ secrets.TERRAFORM_STATE_BUCKET }}" \
-backend-config="key=${{ secrets.TERRAFORM_STATE_KEY }}" \
-backend-config="region=${{ secrets.AWS_REGION }}" \
-backend-config="encrypt=true"
- name: Terraform Full Destroy
run: |
terraform destroy \
-var="domain_name=${{ vars.DOMAIN_NAME }}" \
-var="project_name=${{ vars.PROJECT_NAME }}" \
-var="record_name=${{ vars.RECORD_NAME }}" \
-var="task_role_arn=${{ secrets.TASK_ROLE_ARN }}" \
-var="execution_role_arn=${{ secrets.EXECUTION_ROLE_ARN }}" \
-var="container_image=${{ secrets.CONTAINER_IMAGE }}" \
-auto-approve