github cloudposse/terraform-aws-ecs-alb-service-task v1.0.0

5 hours ago
feat: native ECS blue/green deployment support @jaguer0 (#277) ## what
  • Add support for AWS ECS native (built-in) blue/green deployments, continuing the work started by @oycyc in #270.
  • Expose the three provider blocks on all four aws_ecs_service variants:
    • deployment_configurationstrategy, bake_time_in_minutes, lifecycle_hook (incl. hook_details)
    • load_balancer.advanced_configurationalternate_target_group_arn, production_listener_rule, role_arn, test_listener_rule
    • service_connect_configurationclient_alias.test_traffic_rules
  • Add variable "deployment_configuration" with validation: strategyROLLING/BLUE_GREEN, bake_time_in_minutes 0–1440, and BLUE_GREEN requires (a) ≥1 ecs_load_balancers entry each with advanced_configuration and (b) deployment_controller_type = "ECS".
  • Add a complete, working examples/blue-green (ALB via cloudposse/alb, production + alternate target groups, a weighted production listener rule, a test listener rule, and the ECS infrastructure IAM role) plus a TestExamplesBlueGreen terratest.
  • Raise floors: aws >= 6.4 (where native blue/green landed) and terraform >= 1.9 (cross-variable validation).

why

  • AWS shipped built-in ECS blue/green in July 2025 (AWS provider v6.4.0); this module didn't expose it.
  • ⚠️ Floor bump / likely major version. Terraform schema-validates nested block type names even when a dynamic block's for_each is empty, so these blocks require aws >= 6.4 for all module consumers — effectively a breaking change. terraform >= 1.9 is needed for the single cross-variable validation; happy to swap that back to per-resource preconditions (floor >= 1.3) if you prefer a lower Terraform floor.
  • The ALB / listener-rule / target-group / IAM setup is caller-owned (this module doesn't create the ALB), matching the AWS docs — examples/blue-green demonstrates the full wiring, and the advanced_configuration requirement is enforced at plan time. This resolves the setup confusion raised on #270.
  • Only ROLLING/BLUE_GREEN are exposed; LINEAR/CANARY need their own linear_configuration/canary_configuration blocks and are left as follow-up.

test

  • terraform validate + terraform-docs; the two negative validations verified to fail fast; and a full TestExamplesBlueGreen apply + destroy against a live AWS account (44 resources created and torn down cleanly, all assertions green).

references

fix: test examples/complete subnet @oycyc (#272) Tests are failing ``` Error: Unsupported argument on .terraform/modules/subnets/main.tf line 286, in resource "aws_eip" "default": 286: vpc = true

An argument named "vpc" is not expected here.


Fix by upgrading to the latest module for the `examples/complete`
</details>

<details>
  <summary>Fix typos @raymondchen625 (#264)</summary>
## what

Fix the typos in the description of output `task_exec_role_name`.



</details>


## 🤖 Automatic Updates

<details>
  <summary>Fix go version in tests @osterman (#267)</summary>
## what
- Update go `1.24`

## why
- Error loading shared library libresolv.so.2 in Go 1.20

## References
* https://sweetops.slack.com/archives/G014YEKDH4K/p1746672149263629
* https://github.com/golang/go/issues/59305#issuecomment-1488478737
* https://github.com/cloudposse/terraform-aws-cloudfront-s3-cdn/pull/294/#issuecomment-2859195553


</details>

<details>
  <summary>Replace Makefile with atmos.yaml @osterman (#266)</summary>
## what
- Remove `Makefile`
- Add `atmos.yaml`

## why
- Replace `build-harness` with `atmos` for readme genration

## References
* DEV-3229 Migrate from build-harness to atmos

</details>

Don't miss a new terraform-aws-ecs-alb-service-task release

NewReleases is sending notifications on new releases.