diff --git a/.github/workflows/apply.yml b/.github/workflows/apply.yml new file mode 100644 index 0000000..5c60670 --- /dev/null +++ b/.github/workflows/apply.yml @@ -0,0 +1,36 @@ +name: Terraform Apply + +on: + push: + branches: [main] + +jobs: + apply: + name: Terraform Apply - BCN01 + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 1.5.0 + + - name: Terraform Init + working-directory: sites/bcn01 + run: terraform init + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: us-east-1 + + - name: Terraform Apply + working-directory: sites/bcn01 + run: terraform apply -auto-approve + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: us-east-1 + MERAKI_DASHBOARD_API_KEY: ${{ secrets.MERAKI_DASHBOARD_API_KEY }} diff --git a/.github/workflows/plan.yml b/.github/workflows/plan.yml new file mode 100644 index 0000000..6689999 --- /dev/null +++ b/.github/workflows/plan.yml @@ -0,0 +1,54 @@ +name: Terraform Plan + +on: + pull_request: + branches: [main] + +jobs: + plan: + name: Terraform Plan - BCN01 + runs-on: ubuntu-latest + permissions: + pull-requests: write + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 1.5.0 + + - name: Terraform Init + working-directory: sites/bcn01 + run: terraform init + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: us-east-1 + + - name: Terraform Plan + id: plan + working-directory: sites/bcn01 + run: terraform plan -no-color 2>&1 | tee plan_output.txt + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: us-east-1 + MERAKI_DASHBOARD_API_KEY: ${{ secrets.MERAKI_DASHBOARD_API_KEY }} + + - name: Comentar Plan en el PR + uses: actions/github-script@v7 + if: always() + with: + script: | + const fs = require('fs'); + const plan = fs.readFileSync('sites/bcn01/plan_output.txt', 'utf8'); + const truncated = plan.length > 60000 ? plan.substring(0, 60000) + '\n...(truncado)' : plan; + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: `## Terraform Plan - BCN01\n\`\`\`\n${truncated}\n\`\`\`` + }); diff --git a/sites/bcn01/main.tf b/sites/bcn01/main.tf index 0ec04c9..a53db65 100755 --- a/sites/bcn01/main.tf +++ b/sites/bcn01/main.tf @@ -7,6 +7,14 @@ terraform { version = "1.9.0" } } + + backend "s3" { + bucket = "eqt-terraform-state-629066559706-us-east-1-an" + key = "bcn01/terraform.tfstate" + region = "us-east-1" + dynamodb_table = "terraform-locks" + encrypt = true + } } provider "meraki" {}