bb3ac7c74d
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---
52 lines
1.3 KiB
Terraform
52 lines
1.3 KiB
Terraform
resource "aws_wafv2_web_acl" "this" {
|
|
name = var.name
|
|
scope = local.scope
|
|
|
|
default_action {
|
|
dynamic "allow" {
|
|
for_each = local.action_type == "allow" ? [1] : []
|
|
content {}
|
|
}
|
|
dynamic "block" {
|
|
for_each = local.action_type == "block" ? [1] : []
|
|
content {}
|
|
}
|
|
}
|
|
|
|
visibility_config {
|
|
cloudwatch_metrics_enabled = true
|
|
metric_name = "acdl-waf-metrics"
|
|
sampled_requests_enabled = true
|
|
}
|
|
|
|
dynamic "rule" {
|
|
for_each = var.rules
|
|
content {
|
|
name = lookup(rule.value, "name", "custom-rule-${rule.key}")
|
|
priority = lookup(rule.value, "priority", rule.key)
|
|
override_action {
|
|
none {}
|
|
}
|
|
statement {
|
|
byte_match_statement {
|
|
search_string = lookup(rule.value, "search_string", "/")
|
|
positional_constraint = "CONTAINS"
|
|
field_to_match {
|
|
single_header {
|
|
name = "user-agent"
|
|
}
|
|
}
|
|
text_transformation {
|
|
priority = 0
|
|
type = "NONE"
|
|
}
|
|
}
|
|
}
|
|
visibility_config {
|
|
cloudwatch_metrics_enabled = true
|
|
metric_name = "${lookup(rule.value, "name", "custom-rule-${rule.key}")}-metrics"
|
|
sampled_requests_enabled = true
|
|
}
|
|
}
|
|
}
|
|
} |