snake_case to camelCase, security group rule variables are split, permissive default IAM permissions are removed, and task role inline policies become standalone IAM policies.
What changed
- Minimum Terraform version raised to v1.5.7
- Minimum AWS provider version raised to v6.0.0
- Container definition variable names changed from
snake_casetocamelCaseto match the AWS API security_group_rulessplit intosecurity_group_ingress_rulesandsecurity_group_egress_rules- Default permissive IAM permissions for SSM Parameter Store and Secrets Manager ARNs removed
- Task definition version tracking “hack” removed — use
track_latestinstead - Inline task role policy replaced with a standalone
aws_iam_policyresource container_definition_defaultsvariable removed- Default
userincontainer-definitionchanged from"0"tonull cluster_settingsrenamed tocluster_setting; cluster sub-module variables also renamed
Breaking changes
Variable and output changes
Removed variables
default_capacity_provider_use_fargatefargate_capacity_providers(root and cluster sub-module)container_definition_defaultsservicesub-module:inference_accelerator
Renamed variables
Root module / cluster sub-module
| Before | After |
|---|---|
cluster_settings | cluster_setting |
cluster_configuration | configuration (cluster sub-module) |
cluster_settings | setting (cluster sub-module) |
cluster_service_connect_defaults | service_connect_defaults (cluster sub-module) |
Container definition sub-module
| Before | After |
|---|---|
dependencies | dependsOn |
disable_networking | disableNetworking |
dns_search_domains | dnsSearchDomains |
dns_servers | dnsServers |
docker_labels | dockerLabels |
docker_security_options | dockerSecurityOptions |
environment_files | environmentFiles |
extra_hosts | extraHosts |
firelens_configuration | firelensConfiguration |
health_check | healthCheck |
linux_parameters | linuxParameters |
log_configuration | logConfiguration |
memory_reservation | memoryReservation |
mount_points | mountPoints |
port_mappings | portMappings |
psuedo_terminal | pseudoTerminal |
readonly_root_filesystem | readonlyRootFilesystem |
repository_credentials | repositoryCredentials |
start_timeout | startTimeout |
system_controls | systemControls |
volumes_from | volumesFrom |
working_directory | workingDirectory |
Added variables
cloudwatch_log_group_classdefault_capacity_provider_strategy— replacesfargate_capacity_providersanddefault_capacity_provider_use_fargate- Container definition:
log_group_class,restartPolicy(defaults toenabled = true),versionConsistency - Service sub-module:
availability_zone_rebalancing,volume_configuration,vpc_lattice_configurations,enable_fault_injection,track_latest,create_infrastructure_iam_role,infrastructure_iam_role_arn,infrastructure_iam_role_name, and related IAM role variables
Removed outputs
- Service sub-module:
task_definition_family_revision
Added outputs
- Service sub-module:
infrastructure_iam_role_arn,infrastructure_iam_role_name
Migration guide
Migrate cluster capacity provider configuration
Replace
fargate_capacity_providers with default_capacity_provider_strategy.- Before (v5.x)
- After (v6.x)
Rename container definition variables to camelCase
Update every key in your
container_definitions blocks that previously used snake_case to use camelCase. Use the rename table above as a reference.- Before (v5.x)
- After (v6.x)
Split security_group_rules into ingress and egress
Replace the single
security_group_rules map with separate security_group_ingress_rules and security_group_egress_rules maps. The attribute names have also changed to align with the new resource types.- Before (v5.x)
- After (v6.x)
Update Terraform state for security group rules
Because the underlying resources changed from
aws_security_group_rule to aws_vpc_security_group_ingress_rule / aws_vpc_security_group_egress_rule, state cannot be moved with terraform state mv. You must remove the old state entries and import the new resources.Add explicit IAM permissions for SSM and Secrets Manager
Default permissive IAM permissions for SSM Parameter Store and Secrets Manager have been removed. Add explicit IAM policy statements for any parameters or secrets your tasks access.
Review your task definitions for any
secrets or environment entries that reference SSM or Secrets Manager ARNs, and ensure the task execution role has the appropriate permissions granted explicitly.
