- cluster: support aws providers version ~> 1.50 (#19)
- service_load_balancing: support aws providers version ~> 1.50 (#19)
NEW FEATURES:
- cluster: support volume_size of root_block_device, variable_name is
root_volume_size
BC BREAKS:
- cluster: default of
root_volume_size
is 8 (gigabytes), specify larger than using ami snapshot- volume_type is static gp2
NEW FEATURES:
- service_load_balancing: support aws fargate #15
- case of specifying var.launch_type = "FARGATE" (currently ver, default as "EC2")
BC BREAKS:
- service_load_balancing: migrate from
placement_strategy
toordered_placement_strategy
#16- it has force renew if apply to existing aws_ecs_service
- if you want update wiwthout destroy, prepare edit to .tfstate
s/placement_strategy/ordered_placement_strategy/g
BUG FIXES:
- cluster: fix creating only one autoscaling policy when specified multiple thresholds #14
- service_load_balancing: fix creating only one autoscaling policy when specified multiple thresholds #14
BC BREAKS:
Into this module, like rename resource via above changes
(If you do not care about the resource name of this module, or it is not BC BREAKS)
cluster:
-
split resource: (removed module.xxx.aws_autoscaling_policy.scale_in)
- module.xxx.aws_autoscaling_policy.cpu_reservation_low
- module.xxx.aws_autoscaling_policy.cpu_util_low
- module.xxx.aws_autoscaling_policy.memory_reservation_low
- module.xxx.aws_autoscaling_policy.memory_util_low
-
split resource: (removed module.xxx.aws_autoscaling_policy.scale_out)
- module.xxx.aws_autoscaling_policy.cpu_reservation_high
- module.xxx.aws_autoscaling_policy.cpu_util_high
- module.xxx.aws_autoscaling_policy.memory_reservation_high
- module.xxx.aws_autoscaling_policy.memory_util_high
service_load_balancing:
-
split resource: (removed module.xxx.aws_appautoscaling_policy.scale_in)
- module.xxx.aws_appautoscaling_policy.cpu_low
- module.xxx.aws_appautoscaling_policy.memory_low
-
spolit resource: (removed module.xxx.aws_appautoscaling_policy.scale_out)
- module.xxx.aws_appautoscaling_policy.cpu_high
- module.xxx.aws_appautoscaling_policy.memory_high
- cluster: support tags at aws_cloudwatch_log_group
log_groups_tags
- service_load_balancing: support tags at aws_cloudwatch_log_group
log_groups_tags
- align comparision_operator values
- xxx_high:
LessThanOrEqualToThreshold
(no changes) - xxx_low:
LessThanThreshold
=>LessThanOrEqualToThreshold
- xxx_high:
- service_load_balancing: more output(s)
log_group_name
as aws_cloudwatch_log_group.app.name if enabled autoscalinglog_group_arn
as aws_cloudwatch_log_group.app.arn if enabled autoscaling
BC BREAKS: cluster & service_load_balancing module: variable autoscale_thresholds
splits
to scale_out_thresholds
/ scale_in_thresholds
Code migrations example:
- cluster:
# Before:
module "ex_ecs_cluster" {
source = "git@github.com:voyagegroup/tf_aws_ecs?ref=v0.2.2//cluster"
# ...
autoscale_thresholds = {
cpu_reservation_high = 70
cpu_reservation_low = 10
memory_reservation_high = 80
memory_reservation_low = 20
}
}
# After:
module "ex_ecs_cluster" {
source = "git@github.com:voyagegroup/tf_aws_ecs?ref=v0.3.0//cluster"
# ...
scale_out_thresholds = {
cpu_util = 70
cpu_reservation = 70
memory_util = 80
memory_reservation = 80
}
scale_in_thresholds = {
cpu_util = 70
cpu_reservation = 10
memory_util = 20
memory_reservation = 20
}
}
- service_load_balancing:
# Before:
module "ex_ecs_service" {
source = "git@github.com:voyagegroup/tf_aws_ecs?ref=v0.2.2//service_load_balancing"
# ...
autoscale_thresholds = {
cpu_high = 60
cpu_low = 8
memory_high = 75
memory_low = 10
}
}
# After:
module "ex_ecs_service" {
source = "git@github.com:voyagegroup/tf_aws_ecs?ref=v0.3.0//service_load_balancing"
# ...
scale_out_thresholds = {
cpu = 60
memory = 75
}
scale_in_thresholds = {
cpu = 8
memory = 10
}
}
- cluster: Parameterized to evaluation_periods
scale_out_evaluation_periods
(default: 1)scale_in_evaluation_periods
(default: 2)
- service_load_balancing: Parameterized to evaluation_periods
scale_out_evaluation_periods
(default: 1)scale_in_evaluation_periods
(default: 2)
- cluster: support more autoscaling thresholdsthreads from #12
- cpu_util_high
- cpu_util_low
- memory_util_high
- memory_util_low
- cluster: support specify iam path for role and instance_profile (default: '/')
- new variable:
iam_path
- new variable:
- BC BREAKS: service_load_balancing: #11 No creating aws_iam_role for application autoscaling
- new variable
autoscale_iam_role_arn
that should specify if enabled autoscaling - related: https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html
- new variable
- service_load_balancing: #10 update iam role policy for appautoscaling
- service_load_balancing: #9 update iam role policy for appautoscaling
- this proposal includes bugs, fixed on v0.1.2
- Support only terraform-provider-aws >= 1.0.0
- service_load_balancing: Remove unused variables
scale_in_step_adjustment.metric_interval_upper_bound
scale_out_step_adjustment.metric_interval_lower_bound
- service_load_balancing: ignore task_definition updating into aws_ecs_service
- for cooperating with the ecs deployment process
- related #1
- BC BREAKS: service_load_balancing: #6 split names (container, container family)
- new variable:
container_family
using task definitions
- new variable:
- BC BREAKS: service_load_balancing: variable changed name, and type. log_group -> log_groups
- BC BREAKS: tf_aws_ecs require terraform >= v0.10
- cluster: when destroy, aws_iam_role prepare detaching policies
- service_load_balancing: when destroy, aws_iam_role prepare detaching policies
FEATURES:
-
New Module: cluster (ECS Cluster)
-
New Module: service_load_balancing (ECS Service for ServiceLoadBalancing)
-
cluster: Support AutoScaling
-
cluster: Support AutoScaling notification (#3)
-
service_load_balancing: Support AutoScaling