e1be05287b
---ci--- project: acdl phase: 39 milestone: v1.9 status: execute ---/ci--- Phase 39 — design-doc-refresh-and-p1-1-parameterization: Design docs (REQ-100, REQ-101): - hitl_matrix_design.md: 'dev-only spike'/'v1.2 wires the gates' framing replaced with v1.9 wired-gates reality; 8-concern matrix marked implemented (offline-testable subset + signed evidence artifacts, D-084); v1.9 wiring section cross-references hitl_gates.py + attestation_matrix.py; approver_dr noted. - audit_ledger_design.md: outbox marked shipped+production since v1.8; S3 Object Lock + JWS + async worker + DLQ + daily checkpoints clearly labeled 'Deferred to a future milestone (D-083)'; RPO/RTO table updated; approver fields note v1.9 hitl_gates.attest. P1-1 adapter parameterization (REQ-102, D-085): - ecs-service interface.json: desired_count (default 1), launch_type (FARGATE), family (app) inputs added. - alb interface.json: load_balancer_type (application), target_type (ip). - adapter.py: hardcoded defaults replaced with inputs.get(<name>, <default>); hardcoded 'acdl-microservice-rt'/'acdl-microservice-igw' Name tags derive from the VPC name input. - contract_resolver.py: child_input_map routes wires to the sub-resource that declares the input (desired_count → aws:ecs:service, family → aws:ecs:task_definition, target_type → targetgroup, etc.). - microservice composition.json: wires added for the new inputs. Tests: +21 (test_p1_1_adapter_parameterization.py, test_design_docs_current.py). 371 passed; run_ci.sh green; run_platform.sh --check-only green; v1.1 S3 regression preserved.
45 lines
2.5 KiB
JSON
45 lines
2.5 KiB
JSON
{
|
|
"name": "microservice",
|
|
"version": "1.0.0",
|
|
"kind": "l2",
|
|
"depth": 1,
|
|
"description": "A composition that references six L1 primitives to deploy an ECS Fargate microservice end-to-end.",
|
|
"children": [
|
|
{"id": "vpc", "module": "vpc@1.0.0"},
|
|
{"id": "cluster", "module": "ecs-cluster@1.0.0"},
|
|
{"id": "ecr", "module": "ecr@1.0.0"},
|
|
{"id": "roles", "module": "iam-role@1.0.0"},
|
|
{"id": "alb", "module": "alb@1.0.0"},
|
|
{"id": "service", "module": "ecs-service@1.0.0"},
|
|
{"id": "kms", "module": "kms-key@1.0.0"}
|
|
],
|
|
"wires": [
|
|
{"from": "contract.inputs.bucket_name", "to": "vpc.inputs.cidr", "default": "10.0.0.0/16"},
|
|
{"from": "contract.inputs.name", "to": "vpc.inputs.name", "default": "app"},
|
|
{"from": "contract.inputs.name", "to": "alb.inputs.name", "default": "app"},
|
|
{"from": "contract.inputs.region", "to": "vpc.inputs.region"},
|
|
{"from": "contract.inputs.region", "to": "cluster.inputs.region"},
|
|
{"from": "contract.inputs.region", "to": "ecr.inputs.region"},
|
|
{"from": "contract.inputs.region", "to": "roles.inputs.region"},
|
|
{"from": "contract.inputs.region", "to": "alb.inputs.region"},
|
|
{"from": "contract.inputs.region", "to": "service.inputs.region"},
|
|
{"from": "vpc.outputs.subnet_ids", "to": "alb.inputs.subnets"},
|
|
{"from": "vpc.outputs.subnet_ids", "to": "service.inputs.subnets"},
|
|
{"from": "cluster.outputs.cluster_arn", "to": "service.inputs.cluster_arn"},
|
|
{"from": "ecr.outputs.repository_url", "to": "service.inputs.image"},
|
|
{"from": "roles.outputs.role_arn", "to": "service.inputs.security_group"},
|
|
{"from": "alb.outputs.target_group_arn", "to": "service.inputs.lb_target_group_arn"},
|
|
{"from": "contract.inputs.region", "to": "kms.inputs.region"},
|
|
{"from": "kms.outputs.kms_key_arn", "to": "ecr.inputs.kms_key_arn"},
|
|
{"from": "contract.inputs.desired_count", "to": "service.inputs.desired_count", "default": 1},
|
|
{"from": "contract.inputs.launch_type", "to": "service.inputs.launch_type", "default": "FARGATE"},
|
|
{"from": "contract.inputs.family", "to": "service.inputs.family", "default": "app"},
|
|
{"from": "contract.inputs.load_balancer_type", "to": "alb.inputs.load_balancer_type", "default": "application"},
|
|
{"from": "contract.inputs.target_type", "to": "alb.inputs.target_type", "default": "ip"}
|
|
],
|
|
"outputs": [
|
|
{"from": "alb.outputs.lb_arn", "to": "stack.outputs.lb_arn"},
|
|
{"from": "service.outputs.service_arn", "to": "stack.outputs.service_arn"},
|
|
{"from": "kms.outputs.kms_key_arn", "to": "stack.outputs.kms_key_arn"}
|
|
]
|
|
} |