fix(P60/P62): ALB name_prefix + adapter dedup + L2 composition wiring
acdl-ci / Lint (pull_request) Successful in 7s
acdl-ci / Test (pull_request) Successful in 4m37s
acdl-ci / Platform check-only (offline) (pull_request) Successful in 21s
acdl-modules-lifecycle / CI VPC apply (pull_request) Successful in 40s
acdl-modules-lifecycle / L1 lifecycle (alb) (pull_request) Failing after 4m56s
acdl-modules-lifecycle / L1 lifecycle (ecr) (pull_request) Successful in 2m48s
acdl-modules-lifecycle / L1 lifecycle (cloudfront) (pull_request) Successful in 9m17s
acdl-modules-lifecycle / L1 lifecycle (ecs-cluster) (pull_request) Successful in 3m5s
acdl-modules-lifecycle / L1 lifecycle (iam-role) (pull_request) Successful in 2m52s
acdl-modules-lifecycle / L1 lifecycle (ecs-service) (pull_request) Successful in 4m9s
acdl-modules-lifecycle / L1 lifecycle (kms-key) (pull_request) Successful in 2m58s
acdl-modules-lifecycle / L1 lifecycle (s3) (pull_request) Successful in 2m59s
acdl-modules-lifecycle / L1 lifecycle (uptime) (pull_request) Successful in 4m7s
acdl-modules-lifecycle / L1 lifecycle (vpc) (pull_request) Successful in 3m9s
acdl-modules-lifecycle / L1 lifecycle (waf) (pull_request) Successful in 3m26s
acdl-modules-lifecycle / L2 lifecycle (microservice) (pull_request) Failing after 1m7s
acdl-modules-lifecycle / L2 lifecycle (static-assets) (pull_request) Failing after 1m27s
acdl-modules-lifecycle / L1 lifecycle (rds) (pull_request) Successful in 32m48s
acdl-modules-lifecycle / CI VPC destroy (pull_request) Failing after 20m42s
acdl-ci / Lint (pull_request) Successful in 7s
acdl-ci / Test (pull_request) Successful in 4m37s
acdl-ci / Platform check-only (offline) (pull_request) Successful in 21s
acdl-modules-lifecycle / CI VPC apply (pull_request) Successful in 40s
acdl-modules-lifecycle / L1 lifecycle (alb) (pull_request) Failing after 4m56s
acdl-modules-lifecycle / L1 lifecycle (ecr) (pull_request) Successful in 2m48s
acdl-modules-lifecycle / L1 lifecycle (cloudfront) (pull_request) Successful in 9m17s
acdl-modules-lifecycle / L1 lifecycle (ecs-cluster) (pull_request) Successful in 3m5s
acdl-modules-lifecycle / L1 lifecycle (iam-role) (pull_request) Successful in 2m52s
acdl-modules-lifecycle / L1 lifecycle (ecs-service) (pull_request) Successful in 4m9s
acdl-modules-lifecycle / L1 lifecycle (kms-key) (pull_request) Successful in 2m58s
acdl-modules-lifecycle / L1 lifecycle (s3) (pull_request) Successful in 2m59s
acdl-modules-lifecycle / L1 lifecycle (uptime) (pull_request) Successful in 4m7s
acdl-modules-lifecycle / L1 lifecycle (vpc) (pull_request) Successful in 3m9s
acdl-modules-lifecycle / L1 lifecycle (waf) (pull_request) Successful in 3m26s
acdl-modules-lifecycle / L2 lifecycle (microservice) (pull_request) Failing after 1m7s
acdl-modules-lifecycle / L2 lifecycle (static-assets) (pull_request) Failing after 1m27s
acdl-modules-lifecycle / L1 lifecycle (rds) (pull_request) Successful in 32m48s
acdl-modules-lifecycle / CI VPC destroy (pull_request) Failing after 20m42s
Three fixes from CI run 3027 (06f4fc7):
1. ALB name_prefix too long: AWS limits target group name_prefix to 6
chars. Changed from "acdl-ci-alb-" (12) to "tg-ci-" (6).
2. Adapter deduplication: multi-resource L1s (cloudfront with
distribution + OAC) expand to multiple stack resources sharing the
same terraform dir. The adapter was emitting TWO module blocks for
the same dir, the second missing required inputs. Now deduplicates
by terraform dir, merging inputs from all resources that point to
it. Adapter stays under 200 lines (194).
3. L2 microservice composition: ECR module requires "name" input but
the composition didn't wire it. Added wires for ecr.inputs.name
(default "app-repo") and roles.inputs.role_name (default "app-role").
Note: the ecs-service/uptime/rds failures in run 3027 were caused by
the P64 teardown destroying the CI VPC while the pipeline was still
running (timing issue). The next CI run after this push will have a
fresh CI VPC.
Regression: 485 passed, 5 deselected.
---ci---
project: acdl
phase: P60
milestone: v1.11
status: execute
---/ci---
This commit is contained in:
@@ -152,7 +152,23 @@ def adapt(stack_instance, out_dir):
|
||||
|
||||
# --- main.tf: data blocks + module instantiations + root outputs ---
|
||||
parts = list(data_blocks)
|
||||
parts.extend(_emit_module_block(r, terraform_dirs, repo_root, set(data_source_names)) for r in resources)
|
||||
|
||||
# Deduplicate: multi-resource L1s (e.g. cloudfront) expand to multiple
|
||||
# stack resources sharing one terraform dir. Emit ONE module block per
|
||||
# dir, merging inputs. Use the first resource's id as the module name.
|
||||
seen = {} # terraform_dir → resource
|
||||
for r in resources:
|
||||
tf_dir = terraform_dirs.get(_module_name(r))
|
||||
if tf_dir and tf_dir in seen:
|
||||
for k, v in r.get("inputs", {}).items():
|
||||
if k != "region" and k not in seen[tf_dir].get("inputs", {}):
|
||||
seen[tf_dir].setdefault("inputs", {})[k] = v
|
||||
for k, v in r.get("outputs", {}).items():
|
||||
seen[tf_dir].setdefault("outputs", {})[k] = v
|
||||
elif tf_dir:
|
||||
seen[tf_dir] = r
|
||||
merged = list(seen.values()) if seen else resources
|
||||
parts.extend(_emit_module_block(r, terraform_dirs, repo_root, set(data_source_names)) for r in merged)
|
||||
for out_name, out_spec in stack_outputs.items():
|
||||
if isinstance(out_spec, dict) and "from" in out_spec:
|
||||
rid = out_spec["from"]
|
||||
|
||||
@@ -6,7 +6,7 @@ resource "aws_lb" "this" {
|
||||
}
|
||||
|
||||
resource "aws_lb_target_group" "this" {
|
||||
name_prefix = "${var.name}-"
|
||||
name_prefix = "tg-ci-"
|
||||
port = var.port
|
||||
protocol = var.protocol
|
||||
vpc_id = var.vpc_id
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
],
|
||||
"wires": [
|
||||
{"from": "contract.inputs.name", "to": "alb.inputs.name", "default": "app"},
|
||||
{"from": "contract.inputs.name", "to": "ecr.inputs.name", "default": "app-repo"},
|
||||
{"from": "contract.inputs.name", "to": "roles.inputs.role_name", "default": "app-role"},
|
||||
{"from": "contract.inputs.region", "to": "cluster.inputs.region"},
|
||||
{"from": "contract.inputs.region", "to": "ecr.inputs.region"},
|
||||
{"from": "contract.inputs.region", "to": "roles.inputs.region"},
|
||||
|
||||
Reference in New Issue
Block a user