Skip to content

Commit 359736f

Browse files
committed
fix: replace deprecated dynamodb_table with use_lockfile, fix init ordering
- All backend blocks: dynamodb_table → use_lockfile (AWS provider 6.0) - Makefile init: applies layer 0 first to create S3 bucket before initializing remote layers - Makefile apply: runs init per layer to handle first-run case
1 parent 2772139 commit 359736f

5 files changed

Lines changed: 17 additions & 12 deletions

File tree

Makefile

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Layers (applied in order):
66
# 0-state — S3 backend + DynamoDB lock table (local state bootstrap)
77
# 1-network — VPC, subnets, DNS, ACM
8-
# 2-data — RDS, ECR, KMS, Secrets Manager
8+
# 2-data — RDS, ECR, KMS, Secrets Manager, CI/CD IAM
99
# 3-eks — EKS cluster, IRSA, storage classes
1010
# 4-bootstrap — Karpenter, ALB controller, external-secrets
1111
#
@@ -28,8 +28,11 @@ TF_VAR_FLAG := $(if $(TFVARS),-var-file=$(abspath $(TFVARS)),)
2828
# Base directory for all Terraform layers.
2929
TF_DIR := infra/terraform
3030

31-
# Layers in apply order (0 → 4).
32-
LAYERS := 0-state 1-network 2-data 3-eks 4-bootstrap
31+
# Remote layers (require S3 backend from layer 0).
32+
REMOTE_LAYERS := 1-network 2-data 3-eks 4-bootstrap
33+
34+
# All layers in apply order.
35+
LAYERS := 0-state $(REMOTE_LAYERS)
3336

3437
# Reverse order for destroy (4 → 0).
3538
LAYERS_REV := 4-bootstrap 3-eks 2-data 1-network 0-state
@@ -58,10 +61,12 @@ help: ## Show available commands.
5861
# =============================================================================
5962
# init
6063
# =============================================================================
61-
init: ## Run terraform init in every layer (0→4).
62-
@echo "==> Initializing layer 0-state (local backend — bootstraps S3 state)..."
63-
@cd $(TF_DIR)/0-state && terraform init
64-
@for layer in 1-network 2-data 3-eks 4-bootstrap; do \
64+
init: ## Run terraform init in every layer (0→4). Applies layer 0 first if S3 bucket missing.
65+
@echo "==> Initializing layer 0-state (local backend)..."
66+
@( cd $(TF_DIR)/0-state && terraform init )
67+
@echo "==> Applying layer 0-state to ensure S3 backend exists..."
68+
@( cd $(TF_DIR)/0-state && terraform apply -auto-approve $(TF_VAR_FLAG) )
69+
@for layer in $(REMOTE_LAYERS); do \
6570
echo "==> Initializing layer $$layer..."; \
6671
( cd $(CURDIR)/$(TF_DIR)/$$layer && terraform init ) || exit 1; \
6772
done
@@ -79,9 +84,9 @@ plan: ## Run terraform plan in every layer (0→4).
7984
# apply
8085
# =============================================================================
8186
apply: ## Run terraform apply -auto-approve in every layer (0→4).
82-
@echo "==> Layer 0-state uses local state and must succeed before remote layers."
8387
@for layer in $(LAYERS); do \
8488
echo "==> Applying layer $$layer..."; \
89+
( cd $(CURDIR)/$(TF_DIR)/$$layer && terraform init ) || exit 1; \
8590
( cd $(CURDIR)/$(TF_DIR)/$$layer && terraform apply -auto-approve $(TF_VAR_FLAG) ) || exit 1; \
8691
done
8792

infra/terraform/1-network/providers.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
key = "1-network/terraform.tfstate"
2222
region = "us-west-2"
2323
encrypt = true
24-
dynamodb_table = "coder4gov-terraform-lock"
24+
use_lockfile = true
2525
use_fips_endpoint = true
2626
}
2727
}

infra/terraform/2-data/providers.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ terraform {
2222
key = "2-data/terraform.tfstate"
2323
region = "us-west-2"
2424
encrypt = true
25-
dynamodb_table = "coder4gov-terraform-lock"
25+
use_lockfile = true
2626
use_fips_endpoint = true
2727
}
2828
}

infra/terraform/3-eks/providers.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ terraform {
3030
key = "3-eks/terraform.tfstate"
3131
region = "us-west-2"
3232
encrypt = true
33-
dynamodb_table = "coder4gov-terraform-lock"
33+
use_lockfile = true
3434
use_fips_endpoint = true
3535
}
3636
}

infra/terraform/4-bootstrap/providers.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ terraform {
3535
key = "4-bootstrap/terraform.tfstate"
3636
region = "us-west-2"
3737
encrypt = true
38-
dynamodb_table = "coder4gov-terraform-lock"
38+
use_lockfile = true
3939
use_fips_endpoint = true
4040
}
4141
}

0 commit comments

Comments
 (0)