- Support customization metric autoscaling
- Local to make condition create resources:
local.is_created_aws_appautoscaling_target
local.is_target_tracking_scaling
local.is_contain_predefined_metric
- Related resources:
aws_appautoscaling_policy.target_tracking_scaling_policies
,aws_appautoscaling_policy.step_scaling_policies
,module.step_alarm
- Variables:
step_scaling_configuration
,target_tracking_configuration
- Local to make condition create resources:
- Update resource tagging
- local tags append with module's name created this resource
- Resources:
aws_secretsmanager_secret.this
- Conditional to create resources:
aws_appautoscaling_target.this
,aws_appautoscaling_policy.target_tracking_scaling_policies
,aws_appautoscaling_policy.step_scaling_policies
- Variables:
scaling_configuration
- Support custom and built-in module KMS for cloudwatch log group
- Resources:
data.aws_iam_policy_document.cloudwatch_log_group_kms_policy
,module.cloudwatch_log_group_kms
- Variables:
is_create_default_kms
,cloudwatch_log_group_kms_key_arn
- Resources:
- Validation condition
local.raise_multiple_container_attach_to_alb
- New method to create task definition with support multiple container
local.container_task_definitions
- Variables:
container
- Variables:
- Support for 1 secretManager: N secret
- Resources:
aws_secretsmanager_secret.this
,aws_secretsmanager_secret_version.this
,aws_iam_role_policy.task_execution_role_access_secret
- Resources:
- Update example of simple usage
examples/simple/main.tf
,examples/simple/versions.tf
andexamples/simple/outputs.tf
- Non-used module level validation
local.raise_vpc_id_empty
,local.raise_service_port_empty
,local.raise_health_check_empty
andlocal.raise_alb_listener_arn_empty
- Remove all previous method to construct the task definition for ECS
- Remove all secrets usage 1 key : 1 secret; use 1 secret in JSON form
- Resources:
aws_secretsmanager_secret.service_secrets
,aws_secretsmanager_secret_version.service_secrets
,aws_iam_role_policy.task_execution_secrets
- Resources:
- Remove unused variables
is_attach_service_with_lb
,service_info
,apm_sidecar_ecr_url
,apm_config
.unix_max_connection
,entry_point
andcommand
- Add and verify example in
./examples/simple
- Add outputs
cloudwatch_log_group_name
andcloudwatch_log_group_arn
- Add variable
propagate_tags
with default value TASK_DEFINITION
- Target group naming
local.log_group_name
; removeservice
in string - Update task definition's construction procedure for the secret ARN
- Update resource
random_string.service_secret_random_suffix
's attributelength
from 6 to 5 - Update resource
aws_iam_role_policy.task_execution_secrets
's condition and resource arns - Update resource
aws_ecs_service.this
to support propagate_tags
- Remove
local.task_role_id
- Remove all previous secrets creation
- The following
local
are removedsecret_manager_arns
,secret_names
,secrets_name_arn_map
,secrets_task_unique_definition
,secret_manager_json_arn
,secrets_name_json_arn_map
,secrets_json_task_definition
- The following
- Remove resource:
aws_secretsmanager_secret.service_json_secrets
aws_secretsmanager_secret_version.service_json_secrets
- Remove outputs
outask_role_id
andsecret_json_arn
- Remove variable
json_secret_variables
- Add outputs
target_group_arn
andtarget_group_id
- Support naming override with
var.name_override
; raise exception if naming override or formatted name is not givenlocal.empty_prefix
local.empty_environment
local.empty_name
local.raise_empty_name
- Add new variables
var.name_override
- Add support step scaling alarm in module
step_alarm
concat([aws_appautoscaling_policy.step_scaling_policies[each.key].arn], lookup(each.value, "alarm_actions", lookup(var.scaling_configuration, "default_alarm_actions", [])))
- Update data sources
data.aws_caller_identity.current
todata.aws_caller_identity.this
data.aws_region.current
todata.aws_region.this
- Rename variables in local {...}
local.service_name
tolocal.name
- Update how to struct task definition
- Remove
local.container_definitions
- Update
local.container_definitions_ec2
- Add
local.pre_container_definitions_template
,local.apm_template
,local.ec2_template
,local.ec2_template
andlocal.render_container_definitions
- Remove
- Update variables description and default value for
var.prefix
,var.environment
andvar.name
- Rename variables
var.secrets
tovar.secret_variables
var.json_secrets
tovar.json_secret_variables
var.envvars
tovar.environment_variables
data structure is changed
- Update resource
aws_lb_listener_rule.this
's argumentname
fromformat("%s-service-secrets", local.service_name)
toformat("%s-ecs", var.name)
tags
frommerge(local.tags, { "Name" : format("%s-service-secrets", local.service_name) })
tomerge(local.tags, { "Name" : format("%s-ecs", local.name) })
- Update resource
aws_appautoscaling_policy.target_tracking_scaling_policies
's argumentname
fromformat("%s-%s-scaling-policy", local.service_name, each.key)
toformat("%s-%s-scaling-policy", local.name, replace(each.key, "_", "-"))
- Update resource
aws_appautoscaling_policy.step_scaling_policies
's argumentname
fromformat("%s-%s-scaling-policy", local.service_name, each.key)
toformat("%s-%s-scaling-policy", local.name, replace(each.key, "_", "-"))
- Update module
module.step_alarm
's argumentname
fromformat("%s-%s-alarm", local.service_name, each.key)
toreplace(each.key, "_", "-")
statistic
fromlookup(each.value, "statistic", "Average")
tolookup(each.value, "statistic", null)
- Update parameter in file
task-definitions/*.json
to match with others
- Remove role validator (Let's AWS API handle this)
data.aws_iam_role.get_ecs_task_role
data.aws_iam_role.get_ecs_task_execution_role
- Update meta-argument to count on resource
aws_iam_role_policy_attachment.task_role
- Update resource
aws_lb_target_group.this
to auto substr if service name is longer than 29
- Remove local
service_name_tmp
- Remove local
ecs_task_role_policy_arns
(change to count)
- Update
.pre-commit-config.yaml
- Migrate resource
aws_appautoscaling_policy.step_scaling_policies.step_adjustment
to dynamicstep_adjustment
block - Update resource
aws_cloudwatch_metric_alarm.step_alarm
to be modulestep_alarm
(v1.0.0)
- Remove
local.ecs_default_task_role_policy_arns
- Add variable
var.is_application_scratch_volume_enabled
to support enabled temporary storage on ecs
- On variable
var.service_info
to support additional mount point
- Add variable
var.target_group_deregistration_delay
to support setting deregistration delay time
- Update resource
aws_lb_target_group.this
to support setting deregistration delay time with attributederegistration_delay
- Update file
.pre-commit-config.yaml
- Change
KMS
to use from public module - CHange ALB to auto strip name when name is too longer than 32 chars
- Update
.pre-commit-config.yaml
to support--args=--only=terraform_unused_declarations
- Update
CHANGELOG.md
to all previous version - Fix pre-commit issue
- Remove
containers_num
attribute from variablevar.service_info
- Add description for variables
var.ordered_placement_strategy
- Add file
.github/ISSUE_TEMPLATE/bug_report.md
- Add file
.github/ISSUE_TEMPLATE/feature_request.md
- Add file
.github/PULL_REQUEST_TEMPLATE.md
- Add file
CONTRIBUTING.md
- Add file
CHANGELOG.md
- Add file
LICENSE
- Add file
SECURITY.md
- Add file
task-definitions/service-main-container-ec2.json
- Add example under
examples/*
dir - Add local
local.volumes
support mount with efs - Add local
local.raise_enable_exec_on_cp
to raise exception when integrating with EC2 launch type - Add support for
entry_point
,command
and EC2 launch type for task definition - Add attribute for resource
aws_ecs_service.this
enable_ecs_managed_tags
istrue
- Dynamic
ordered_placement_strategy
- Dynamic
capacity_provider_strategy
deployment_circuit_breaker
block
- Add variable
var.capacity_provider_strategy
- Add variable
var.ordered_placement_strategy
- Add variable
var.unix_max_connection
- Add variable
var.entry_point
- Add variable
var.command
- Add variable
var.efs_volumes
- Add variable
var.deployment_circuit_breaker
- Update file
.gitignore
to ignore file with regexterraform.*example*.tfvars
- Update file
task-definitions/service-main-container.json
andtask-definitions/service-with-sidecar-container.json
to support entry point, command - Update
.pre-commit-config.yaml
to un-support--args=--only=terraform_unused_declarations
- Upgrade KMS version from
v0.0.1
tov1.0.0
- Update
aws_ecs_task_definition.this
to support EC2 compatibilities - Update variables
var.envvars
not to create unneeded secret
- Remove content in
README.md
- Remove file
archive README.md
- Add variable
var.cloudwatch_log_retention_in_days
- Add variable
var.cloudwatch_log_kms_key_id
- Fix KMS issue
- Added file
.github/workflows/code-scan.yml
- Update tagging on resource
aws_cloudwatch_metric_alarm.step_alarm
- Add local
local.comparison_operators
to make it easier for future use - Add resource
aws_appautoscaling_target.this
- Add resource
aws_appautoscaling_policy.target_tracking_scaling_policies
- Add resource
aws_appautoscaling_policy.step_scaling_policies
- Add resource
aws_cloudwatch_metric_alarm.step_alarm
- Add variable
scaling_configuration
to configure the scaling behavior
- Update
.pre-commit-config.yaml
to support--args=--only=terraform_unused_declarations
- Update variable's name
var.alb_path
tovar.alb_paths
- Update resource
aws_lb_listener_rule.this
to support multiple paths
- Remove
local.raise_alb_host_header_empty
for support empty host header
- Restructure of ECS module
- init terraform-aws-ecs-fargate-service