fix(P60): WAF scope case + VPC modify DependencyViolation
acdl-ci / Lint (pull_request) Successful in 8s
acdl-ci / Platform check-only (offline) (pull_request) Successful in 24s
acdl-modules-lifecycle / CI VPC apply (pull_request) Successful in 40s
acdl-ci / Test (pull_request) Successful in 4m1s
acdl-modules-lifecycle / L1 lifecycle (alb) (pull_request) Failing after 1m54s
acdl-modules-lifecycle / L1 lifecycle (cloudfront) (pull_request) Successful in 9m20s
acdl-modules-lifecycle / L1 lifecycle (ecr) (pull_request) Successful in 2m38s
acdl-modules-lifecycle / L1 lifecycle (ecs-cluster) (pull_request) Successful in 2m58s
acdl-modules-lifecycle / L1 lifecycle (iam-role) (pull_request) Successful in 2m37s
acdl-modules-lifecycle / L1 lifecycle (ecs-service) (pull_request) Failing after 5m13s
acdl-modules-lifecycle / L1 lifecycle (rds) (pull_request) Failing after 1m18s
acdl-modules-lifecycle / L1 lifecycle (kms-key) (pull_request) Successful in 2m54s
acdl-modules-lifecycle / L1 lifecycle (s3) (pull_request) Successful in 2m55s
acdl-modules-lifecycle / L1 lifecycle (vpc) (pull_request) Successful in 2m49s
acdl-modules-lifecycle / L1 lifecycle (uptime) (pull_request) Failing after 6m3s
acdl-modules-lifecycle / L1 lifecycle (waf) (pull_request) Successful in 3m11s
acdl-modules-lifecycle / CI VPC destroy (pull_request) Failing after 20m40s

Two module defects found in the prior live matrix run (3000, SHA
a55752e2) that hadn't been fixed:

1. WAF: `scope: cloudfront` in complex example failed with "expected
   scope to be one of [CLOUDFRONT REGIONAL], got cloudfront". AWS
   requires uppercase. Added `scope = upper(var.scope)` in locals.tf
   so the module is resilient to either casing, and fixed the complex
   example to use CLOUDFRONT.

2. VPC: simple→complex modify tried to replace the VPC (CIDR changed
   10.0.0.0/16 → 10.50.0.0/16, which is ForceNew) while subnets/IGW/
   route tables still referenced it → DependencyViolation. Fixed the
   complex example to use the same CIDR (10.0.0.0/16) so terraform
   modifies in-place (adds a 3rd AZ subnet, updates tags). Also added
   create_before_destroy lifecycle on the VPC as a defensive measure.

Regression: 479 passed, 5 deselected. 24 example contracts resolve.

---ci---
project: acdl
phase: P60
milestone: v1.11
status: execute
---/ci---
This commit is contained in:
Jon Chery
2026-07-28 20:13:07 +00:00
parent bc9058fc90
commit bb3ac7c74d
5 changed files with 10 additions and 5 deletions
+3 -3
View File
@@ -1,12 +1,12 @@
# Complex VPC with 3 AZs and a custom CIDR # Complex VPC with 3 AZs (same CIDR as simple — modify, not replace)
environment: dev environment: dev
id: vpc id: vpc
infrastructure: infrastructure:
vpc: vpc:
inputs: inputs:
azs: us-east-1a,us-east-1b,us-east-1c azs: us-east-1a,us-east-1b,us-east-1c
cidr: 10.50.0.0/16 cidr: 10.0.0.0/16
name: my-production-vpc name: my-vpc
region: us-east-1 region: us-east-1
version: 1.0.0 version: 1.0.0
name: vpc-network name: vpc-network
+4
View File
@@ -3,6 +3,10 @@ resource "aws_vpc" "this" {
tags = { tags = {
Name = local.name_tag Name = local.name_tag
} }
lifecycle {
create_before_destroy = true
}
} }
resource "aws_subnet" "this" { resource "aws_subnet" "this" {
+1 -1
View File
@@ -7,6 +7,6 @@ infrastructure:
default_action: allow default_action: allow
name: my-production-waf name: my-production-waf
region: us-east-1 region: us-east-1
scope: cloudfront scope: CLOUDFRONT
version: 1.0.0 version: 1.0.0
name: waf-firewall name: waf-firewall
+1
View File
@@ -1,3 +1,4 @@
locals { locals {
action_type = var.default_action == "block" ? "block" : "allow" action_type = var.default_action == "block" ? "block" : "allow"
scope = upper(var.scope)
} }
+1 -1
View File
@@ -1,6 +1,6 @@
resource "aws_wafv2_web_acl" "this" { resource "aws_wafv2_web_acl" "this" {
name = var.name name = var.name
scope = var.scope scope = local.scope
default_action { default_action {
dynamic "allow" { dynamic "allow" {