From 5f4052abc2b1328a29be8b14b764087eacab689e Mon Sep 17 00:00:00 2001 From: Mohammed Janibasha Date: Tue, 29 Aug 2023 18:28:36 +0530 Subject: [PATCH] Create waap-k8s-destroy.yml --- .github/workflows/waap-k8s-destroy.yml | 155 +++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 .github/workflows/waap-k8s-destroy.yml diff --git a/.github/workflows/waap-k8s-destroy.yml b/.github/workflows/waap-k8s-destroy.yml new file mode 100644 index 000000000..c433f70df --- /dev/null +++ b/.github/workflows/waap-k8s-destroy.yml @@ -0,0 +1,155 @@ +name: "WAAP + K8s Apply" + +on: + push: + branches: + - destroy-waap-k8s + pull_request: + +jobs: + terraform_eks: + name: "AWS EKS" + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./eks-cluster + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v2 + with: + cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} + + - name: Setup Terraform Backend + id: backend + run: | + cat > backend.tf << EOF + terraform { + cloud { + organization = "${{ secrets.TF_CLOUD_ORGANIZATION }}" + workspaces { + name = "${{ secrets.TF_CLOUD_WORKSPACE_EKS }}" + } + } + } + EOF + + - name: Terraform Init + id: init + run: terraform init + + - name: Terraform Validate + id: validate + run: terraform validate -no-color + + - name: Terraform Plan + id: plan + if: github.event_name == 'pull_request' + run: terraform plan -no-color -input=false + continue-on-error: true + + - uses: actions/github-script@v6 + if: github.event_name == 'pull_request' + env: + PLAN: "terraform\n${{ steps.plan.outputs.stdout }}" + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const output = `#### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\` + #### Terraform Validation 🤖\`${{ steps.validate.outcome }}\` + #### Terraform Plan 📖\`${{ steps.plan.outcome }}\` +
Show Plan + \`\`\`\n + ${process.env.PLAN} + \`\`\` +
+ *Pushed by: @${{ github.actor }}, Action: \`${{ github.event_name }}\`*`; + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: output + }) + - name: Terraform Plan Status + if: steps.plan.outcome == 'failure' + run: exit 1 + + - name: Terraform Destroy + if: github.ref == 'refs/heads/deploy-waap-k8s' && github.event_name == 'push' + run: terraform destroy -auto-approve -input=false + + terraform_infra: + name: "AWS Infra" + runs-on: ubuntu-latest + needs: terraform_eks + defaults: + run: + working-directory: ./infra + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v2 + with: + cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} + + - name: Setup Terraform Backend + id: backend + run: | + cat > backend.tf << EOF + terraform { + cloud { + organization = "${{ secrets.TF_CLOUD_ORGANIZATION }}" + workspaces { + name = "${{ secrets.TF_CLOUD_WORKSPACE_INFRA }}" + } + } + } + EOF + + - name: Terraform Init + id: init + run: terraform init + + - name: Terraform Validate + id: validate + run: terraform validate -no-color + + - name: Terraform Plan + id: plan + if: github.event_name == 'pull_request' + run: terraform plan -no-color -input=false + continue-on-error: true + + - uses: actions/github-script@v6 + if: github.event_name == 'pull_request' + env: + PLAN: "terraform\n${{ steps.plan.outputs.stdout }}" + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const output = `#### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\` + #### Terraform Validation 🤖\`${{ steps.validate.outcome }}\` + #### Terraform Plan 📖\`${{ steps.plan.outcome }}\` +
Show Plan + \`\`\`\n + ${process.env.PLAN} + \`\`\` +
+ *Pushed by: @${{ github.actor }}, Action: \`${{ github.event_name }}\`*`; + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: output + }) + - name: Terraform Plan Status + if: steps.plan.outcome == 'failure' + run: exit 1 + + - name: Terraform Destroy + if: github.ref == 'refs/heads/deploy-waap-k8s' && github.event_name == 'push' + run: terraform destroy -auto-approve -input=false