Files
acdl/modules/l1/ecs-cluster
Jon Chery 0e6ecae26d feat(P4): Nova rebrand — AWS resource migration (REQ-163)
Rename all acdl-* AWS resources → nova-* across terraform (DynamoDB,
Secrets Manager, Lambda, SNS, SG, KMS alias, ECS, ECR, IAM user/policy,
state bucket, ALB, VPC/subnet names). Lambda default table names → nova-*
(D-111). State bucket backend → nova-tfstate (-migrate-state documented).
New docs/NOVA_AWS_MIGRATION.md runbook (staged migration + rollback).
New scripts/migrate_dynamodb_data.py (scan+copy, dry-run default).
acdl-deploy- → nova-deploy- role ARN in deploy workflows. Test fixtures
updated; terraform validate + pytest + run_ci.sh PASS.

---ci---
project: acdl
phase: 4
milestone: v1.15
status: execute
---/ci---
2026-07-30 01:54:26 +00:00
..

ecs-cluster — ECS Fargate cluster

Module kind: primitive | Version: 1.0.0

An ECS Fargate cluster. The simplest ECS module — one resource, two inputs, two outputs. The cluster is the container orchestration boundary that ecs-service references for task placement.

Resources

Resource Type Purpose
cluster aws_ecs_cluster The ECS Fargate cluster

Inputs

Name Type Required Default Description
name string yes The ECS cluster name
region string yes AWS region the cluster is created in

Outputs

Name Type Description
cluster_arn arn The ECS cluster ARN
cluster_id string The ECS cluster id (name)

Usage

{
  "id": "cluster",
  "type": "aws:ecs:cluster",
  "module": "ecs-cluster@1.0.0",
  "inputs": {
    "name": "acdl-microservice",
    "region": "us-east-1"
  }
}

The cluster_arn output is referenced by ecs-service as its cluster_arn input.

Compliance extension points

  • Container Insights — add configuration { container_insights = "enabled" } for observability (SOC2 CC7.3, DORA ICT risk monitoring).
  • CloudWatch Logs — add a log group with retention policy for cluster-level audit logs (SOX, SOC2 CC7.2.
  • Encryption — add settings { name = "containerInsights", value = "enabled" } and KMS-based encryption for container data (GDPR Art.32).

Examples

Validated example contracts are in examples/. The platform-test pipeline validates them against schemas/contract.schema.json.

Simple

A minimal deployment:

examples/simple.yml

environment: dev
id: clus
infrastructure:
  ecs-cluster:
    inputs:
      name: my-cluster
      region: us-east-1
    version: 1.0.0
name: ecs-cluster

Complex

A production deployment with optional inputs:

examples/complex.yml

environment: dev
id: clus
infrastructure:
  ecs-cluster:
    inputs:
      name: my-production-cluster
      region: us-east-1
    version: 1.0.0
name: ecs-cluster

Versioning

1.0.0 — interface MAJOR, behavior MINOR, lifecycle PATCH. MAJOR bumps require a new registry entry (immutable publication); old entries enter a 12-month deprecation window.