diff --git a/README.md b/README.md index 3cf9d9f..8c4204b 100644 --- a/README.md +++ b/README.md @@ -227,13 +227,13 @@ Note: the default behavior of the module is to create an autoscaling group and l | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.16.2 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.16.2 | ## Modules @@ -298,6 +298,7 @@ No modules. | [iam\_role\_tags](#input\_iam\_role\_tags) | A map of additional tags to add to the IAM role created | `map(string)` | `{}` | no | | [iam\_role\_use\_name\_prefix](#input\_iam\_role\_use\_name\_prefix) | Determines whether the IAM role name (`iam_role_name`) is used as a prefix | `bool` | `true` | no | | [ignore\_desired\_capacity\_changes](#input\_ignore\_desired\_capacity\_changes) | Determines whether the `desired_capacity` value is ignored after initial apply. See README note for more details | `bool` | `false` | no | +| [ignore\_failed\_scaling\_activities](#input\_ignore\_failed\_scaling\_activities) | Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned. | `bool` | `false` | no | | [image\_id](#input\_image\_id) | The AMI from which to launch the instance | `string` | `""` | no | | [initial\_lifecycle\_hooks](#input\_initial\_lifecycle\_hooks) | One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate `aws_autoscaling_lifecycle_hook` resource, without the `autoscaling_group_name` attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use `aws_autoscaling_lifecycle_hook` resource | `list(map(string))` | `[]` | no | | [instance\_initiated\_shutdown\_behavior](#input\_instance\_initiated\_shutdown\_behavior) | Shutdown behavior for the instance. Can be `stop` or `terminate`. (Default: `stop`) | `string` | `null` | no | diff --git a/examples/complete/README.md b/examples/complete/README.md index e69f257..1eb3217 100644 --- a/examples/complete/README.md +++ b/examples/complete/README.md @@ -30,13 +30,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.16.2 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.16.2 | ## Modules diff --git a/examples/complete/main.tf b/examples/complete/main.tf index c179c5c..d3884af 100644 --- a/examples/complete/main.tf +++ b/examples/complete/main.tf @@ -68,11 +68,13 @@ module "complete" { instance_refresh = { strategy = "Rolling" preferences = { - checkpoint_delay = 600 - checkpoint_percentages = [35, 70, 100] - instance_warmup = 300 - min_healthy_percentage = 50 - auto_rollback = true + checkpoint_delay = 600 + checkpoint_percentages = [35, 70, 100] + instance_warmup = 300 + min_healthy_percentage = 50 + auto_rollback = true + scale_in_protected_instances = "Refresh" + standby_instances = "Terminate" } triggers = ["tag"] } diff --git a/examples/complete/versions.tf b/examples/complete/versions.tf index ddfcb0e..3801567 100644 --- a/examples/complete/versions.tf +++ b/examples/complete/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.16.2" } } } diff --git a/main.tf b/main.tf index f46ee09..2f83f64 100644 --- a/main.tf +++ b/main.tf @@ -383,9 +383,10 @@ resource "aws_autoscaling_group" "this" { suspended_processes = var.suspended_processes max_instance_lifetime = var.max_instance_lifetime - enabled_metrics = var.enabled_metrics - metrics_granularity = var.metrics_granularity - service_linked_role_arn = var.service_linked_role_arn + enabled_metrics = var.enabled_metrics + metrics_granularity = var.metrics_granularity + service_linked_role_arn = var.service_linked_role_arn + ignore_failed_scaling_activities = var.ignore_failed_scaling_activities dynamic "initial_lifecycle_hook" { for_each = var.initial_lifecycle_hooks @@ -409,11 +410,13 @@ resource "aws_autoscaling_group" "this" { dynamic "preferences" { for_each = try([instance_refresh.value.preferences], []) content { - checkpoint_delay = try(preferences.value.checkpoint_delay, null) - checkpoint_percentages = try(preferences.value.checkpoint_percentages, null) - instance_warmup = try(preferences.value.instance_warmup, null) - min_healthy_percentage = try(preferences.value.min_healthy_percentage, null) - auto_rollback = try(preferences.value.auto_rollback, null) + checkpoint_delay = try(preferences.value.checkpoint_delay, null) + checkpoint_percentages = try(preferences.value.checkpoint_percentages, null) + instance_warmup = try(preferences.value.instance_warmup, null) + min_healthy_percentage = try(preferences.value.min_healthy_percentage, null) + auto_rollback = try(preferences.value.auto_rollback, null) + scale_in_protected_instances = try(preferences.value.scale_in_protected_instances, null) + standby_instances = try(preferences.value.standby_instances, null) } } } @@ -647,9 +650,10 @@ resource "aws_autoscaling_group" "idc" { suspended_processes = var.suspended_processes max_instance_lifetime = var.max_instance_lifetime - enabled_metrics = var.enabled_metrics - metrics_granularity = var.metrics_granularity - service_linked_role_arn = var.service_linked_role_arn + enabled_metrics = var.enabled_metrics + metrics_granularity = var.metrics_granularity + service_linked_role_arn = var.service_linked_role_arn + ignore_failed_scaling_activities = var.ignore_failed_scaling_activities dynamic "initial_lifecycle_hook" { for_each = var.initial_lifecycle_hooks @@ -673,11 +677,13 @@ resource "aws_autoscaling_group" "idc" { dynamic "preferences" { for_each = try([instance_refresh.value.preferences], []) content { - checkpoint_delay = try(preferences.value.checkpoint_delay, null) - checkpoint_percentages = try(preferences.value.checkpoint_percentages, null) - instance_warmup = try(preferences.value.instance_warmup, null) - min_healthy_percentage = try(preferences.value.min_healthy_percentage, null) - auto_rollback = try(preferences.value.auto_rollback, null) + checkpoint_delay = try(preferences.value.checkpoint_delay, null) + checkpoint_percentages = try(preferences.value.checkpoint_percentages, null) + instance_warmup = try(preferences.value.instance_warmup, null) + min_healthy_percentage = try(preferences.value.min_healthy_percentage, null) + auto_rollback = try(preferences.value.auto_rollback, null) + scale_in_protected_instances = try(preferences.value.scale_in_protected_instances, null) + standby_instances = try(preferences.value.standby_instances, null) } } } diff --git a/variables.tf b/variables.tf index eda0d9c..87e3873 100644 --- a/variables.tf +++ b/variables.tf @@ -295,6 +295,12 @@ variable "autoscaling_group_tags" { default = {} } +variable "ignore_failed_scaling_activities" { + description = "Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned." + type = bool + default = false +} + ################################################################################ # Launch template ################################################################################ diff --git a/versions.tf b/versions.tf index ddfcb0e..3801567 100644 --- a/versions.tf +++ b/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.16.2" } } }