Refactor Terraform init to use backend-config flags
All checks were successful
Code Quality & Security Scan / TFLint (push) Successful in 21s
Code Quality & Security Scan / Tfsec Security Scan (push) Successful in 31s
Code Quality & Security Scan / Checkov Security Scan (push) Successful in 35s
Code Quality & Security Scan / SonarQube Trigger (push) Successful in 45s
Code Quality & Security Scan / Terraform Init (push) Successful in 29s

- Updated backend.tf to use partial configuration
- Modified workflow to pass backend settings via -backend-config flags
- Follows Azure-style pattern with environment variables
- Improves flexibility and keeps configuration out of version control
- Required secrets: MINIO_ENDPOINT, MINIO_BUCKET, MINIO_STATE_KEY
This commit is contained in:
Patrick de Ruiter 2025-11-02 00:32:28 +01:00
parent 4ce4ee9b70
commit 4a2ed7bf4f
Signed by: pderuiter
GPG Key ID: 5EBA7F21CF583321
2 changed files with 17 additions and 14 deletions

View File

@ -96,4 +96,18 @@ jobs:
env:
AWS_ACCESS_KEY_ID: ${{ secrets.MINIO_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.MINIO_SECRET_KEY }}
run: terraform init
TF_BACKEND_ENDPOINT: ${{ secrets.MINIO_ENDPOINT }}
TF_BACKEND_BUCKET: ${{ secrets.MINIO_BUCKET }}
TF_BACKEND_KEY: ${{ secrets.MINIO_STATE_KEY }}
TF_BACKEND_REGION: "main"
run: |
terraform init \
-backend-config="endpoints={s3=\"${TF_BACKEND_ENDPOINT}\"}" \
-backend-config="bucket=${TF_BACKEND_BUCKET}" \
-backend-config="key=${TF_BACKEND_KEY}" \
-backend-config="region=${TF_BACKEND_REGION}" \
-backend-config="skip_credentials_validation=true" \
-backend-config="skip_metadata_api_check=true" \
-backend-config="skip_requesting_account_id=true" \
-backend-config="skip_region_validation=true" \
-backend-config="use_path_style=true"

View File

@ -1,17 +1,6 @@
terraform {
backend "s3" {
endpoints = {
s3 = "https://minio.bsdserver.nl:443"
}
bucket = "home-terraform"
key = "home/vsphere/network/vsphere-resourcegroup-config.tfstate"
region = "main"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
skip_region_validation = true
use_path_style = true
# Backend configuration provided via -backend-config flags during terraform init
# This allows for environment-specific and CI/CD-friendly configuration
}
}