Skip to content

Latest commit

 

History

History
289 lines (163 loc) · 8.86 KB

File metadata and controls

289 lines (163 loc) · 8.86 KB

Change log

v1.0 - ??

Terraform 0.11

v2.0 - ??

Terraform 0.12

v2.1 2020-09-24

Update aws_alb_listener_rule resources to use new condition syntax as this moved from warning to error.

# from..
condition {
  field  = "host-header"
  values = ["my-hostname"]
}

# to..
condition {
  host_header {
    values = ["my-hostname"]
  }
}

2.2 2020-11-03

Update typo in port_mappings for services/tasks/quartet

2.3 2021-05-10

Introduce ecs/container_definition and ecs/task_definition modules. These will allow more granular control over container and task than is currently in /services/tasks.

3.0 2021-12-01

Rewrite VPC module. Allows greater control of what is created by having submodules. Avoid need to specify all CIDRs and only supporting 2 subnets.

Remove basic cluster and added standard. Standard has no config for samba, elastic-search or private dockerhub and allows folders created to be specified by caller.

Delete logging + dns module as they only created a single resource.

Update services/tasks/ modules:

  • Create "env-vars" module to replace "environment-variable", gradually phase out needing to specify environment-var length in calling modules.
  • Update "ulimits" and "port-mappings" to no longer require length to be set.
  • Allow "secret_environment_variables" to be specified for tasks. note - execution tasks are not configured in these modules so this needs extra work

3.1 2022-01-11

Fix how secret keys are calculated for secret_reference

3.2 2022-03-24

Remove last usages of legacy interpolation syntax

3.3 2022-08-18

Add min_size and max_size to bastion module. This will allow setting to 0 to have a default 'off' bastion host.

3.4 2022-10-28

Add /ecs/ec2_capacity_provider, /ecs/web_fargate and /ecs/web_ec2 modules.

Added /load-balancing/target module use from above /web_* modules.

Allow 'hostname' to be specified in bastion module.

3.5 2022-10-31

Add links parameter to container_definition module

3.6 2022-10-31

hostname and zone_id are optional for ecs/web_* modules.

3.7 2022-11-02

Allow data volume to be specified for /ecs/ec2_capacity_provider.

Add ephemeral_storage to /ecs/task_definition.

3.8 2022-11-08

Add /ecs/autoscaling/scheduled module.

Removed services/base/worker and services/base/web-basic modules.

3.9 2022-11-10

Ignore changes to desired_count for web_fargate and web_ecs.

3.10 2022-12-06

Fix SQS module to use topic_arn for aws:SourceArn condition, rather than topic_name

3.11 2023-01-12

Update SQS module to allow setting of raw_message_delivery on SNS subscription.

3.12 2023-02-03

Remove "Project" tag from everywhere with exception of ASG creation. Expectation is that default_tags will be used to set project from calling modules.

Add "resourceRequirements" to ecs/container_definition.

3.13 2023-03-02

Add "ulimits" variable to ECS container_definition module. Provided as a map:

ulimits = {
  "name"   = "softLimit:hardLimit"
  "nofile" = "32768:65536"
}

3.14 2023-05-03

Add /ecs/ec2_capacity_provider_abs module for creating ECS capacity provider with attribute based instance selection.

3.15 2023-05-04

Allow base to be set for capacity provider strategy in web_ec2 ecs module.

3.16 2023-05-19

Alter device_names use for capacity providers. Latest AMI's used 1 volume (/dev/xvda) for both OS and Docker, rather than previous approach of Docker having a separate volume.

3.17 2023-05-19

Allow min_size to set for capacity provider ASG

3.18 2023-06-06

Add /vpc/legacy module. This was removed in 3.0 in favour of much more flexible vpc module.

Re-adding to allow estates that already use it to leverage default_tags without TF always detecting changes.

3.19 2023-06-28

Output instance_role_name from /ecs/ec2_capacity_provider* modules - this will allow adding further permissions as required.

3.20 2023-07-28

Adding in a filter_policy variable to the sqs module that allows a filter policy to be set on an SNS subscription to a queue

3.21 2023-09-11

Updates to bastion module:

  • Remove use of default SG
  • Default to t3a.micro instance
  • Default to Amazon Linux 2023 ami if not specified
  • Update to use IMDSv2 for getting public IP
  • Switch from launch-configuration to launch-template
  • Output bastion role

Updates to vpc module:

  • Remove deprecated syntax in aws_eip

3.22 2023-10-26

Update load-balancer module to output id of attached security group

3.23 2023-12-07

Update to add filter_policy_scope to sns

3.24 2023-12-20

Allow retention to be specified for DLQ in SQS module

3.25 2024-01-17

Update wildcard-alb module to optionall add access_logs.

3.26 2024-06-17

Allow stickiness to be specified for ecs/web_ec2 and load-balancing/target

3.27 2024-06-18

Bugfix for above - correct variable name

3.28 2024-06-25

Add default_tags to ASG resources for ecs/ec2_capacity_provider and ecs/ec2_capacity_provider_abs, as per this workaround

3.29 2024-06-28

Update stickiness to allow for choosing whether to use lb_cookie or app_cookie and extend to ecs/web_fargate

3.30 2024-07-09

Allow deployment min/max percent to be set for ECS services in ecs/web_fargate and ecs/web_ec2.

Allow load-balancing algorithm to be controlled in load-balancing/target (extended to ecs/web_fargate and ecs/web_ec2)

3.31 2024-07-17

Add data/alb and data/cloudfront modules.

3.32 2024-08-07

Fix issue in load-balancing/target, ecs/web_fargate and ecs/web_ec2 that prevented stickiness being removed.

3.33 2024-08-16

Add default_tags to ASG resources for bastion, same as was done for capacity-providers in v3.28

3.34 2024-08-23

Various updates, driven by changes to conform to SecurityHub standards:

  • bastion - add associate_public_ip_address = true to avoid confusion if new vpc.map_public_ips_on_launch is set to false
  • ecs/container_definition - added read_only_filesystem var
  • load-balancing/wildcard-alb - added drop_invalid_headers and enable_deletion_protection vars
  • s3/ssl-only - new module to generate bucket policy for denying non-SSL traffic single resource only - generally not ideal but saves boiler plate
  • vpc - module now accepts map_public_ips_on_launch to opt out of auto-assigning for public subnets

3.35 2025-03-20

ecs/web_fargate and ecs/web_ec2 and load-balancing/target modules gain health_check_port var.

3.36 2025-06-26

load-balancing/wildcard-alb module gains client_keep_alive var.

3.37 2025-10-17

Fix legacy/vpc module for later versions of TF. vpc = true is now deprecated in favour of domain = "vpc". Non functional change.

3.38 2025-10-28

Update secrets modules. data.aws_region.*.name is deprecated, updated to use .region attribute

3.39 2025-11-17

Allow force_new_deployment for ecs/web_fargate and ecs/web_ec2 modules.

Required for certain changes (e.g. capacity_provider)

3.40 2025-11-27

bastion module autoscaling. Default shutsdown Bastion host for 30mins on first of month.

Most uses of Bastion module will use AMI data-source so applies could have updated the launch-template without affecting instance. Minimum monthly restart ensures we're on latest

3.41 2025-12-10

/services/tasks/scheduled module gains var.network_configuration, var.launch_type and additional required IAM permissions.

Allows control of ecs_target > network_configuration element to allow for scheduled FARGATE services

3.42 2025-12-17

Add data/waf module for querying WAF logs via Athena.

3.43 2026-05-01

Add additional_topic_names var to /messaging/sqs.

This is optional and allows consumers to provide further topic names to subsribe to queue.

3.44 2026-05-12

ecs/ec2_capacity_provider and ecs/ec2_capacity_provider_abs output ASG arn.

3.45 2026-05-29

ecs/ec2_capacity_provider, ecs/ec2_capacity_provider_abs and bastion default AMI updated to AmazonLinux 2023.

ecs/ec2_capacity_provider and bastion changes from using data "aws_ami" to using "resolve:ssm:* style syntax. This means that on startup the ASG will read the latest AMI from that location, there's no need to apply TF to update the latest image.

ecs/ec2_capacity_provider_abs continues to lookup AMI as it uses a mixed_instances_policy, this is a constraint of AWS as it needs to evaluate the AMI to find appropriate types so needs to know up front.

Warning

User-data may need changing as this uses AL2023 and previous used and AL2.

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/al2-to-al2023-ami-transition.html

3.46 2026-06-22

Add missing partition_key element for data/alb module.