Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rhythmictech/terraform-aws-asg-rollingupdate

Terraform module to create Autoscaling Group in AWS with AutoScalingRollingUpdates
https://github.com/rhythmictech/terraform-aws-asg-rollingupdate

autoscaling-group aws terraform terraform-module terraform-modules

Last synced: 4 days ago
JSON representation

Terraform module to create Autoscaling Group in AWS with AutoScalingRollingUpdates

Awesome Lists containing this project

README

        

# terraform-aws-asg-rollingupdate
[![tflint](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/workflows/tflint/badge.svg?branch=master&event=push)](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/actions?query=workflow%3Atflint+event%3Apush+branch%3Amaster)
[![tfsec](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/workflows/tfsec/badge.svg?branch=master&event=push)](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/actions?query=workflow%3Atfsec+event%3Apush+branch%3Amaster)
[![yamllint](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/workflows/yamllint/badge.svg?branch=master&event=push)](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/actions?query=workflow%3Ayamllint+event%3Apush+branch%3Amaster)
[![misspell](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/workflows/misspell/badge.svg?branch=master&event=push)](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/actions?query=workflow%3Amisspell+event%3Apush+branch%3Amaster)
[![pre-commit-check](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/workflows/pre-commit-check/badge.svg?branch=master&event=push)](https://github.com/rhythmictech/terraform-aws-asg-rollingupdate/actions?query=workflow%3Apre-commit-check+event%3Apush+branch%3Amaster)
follow on Twitter

Terraform module to create Autoscaling Group in AWS with AutoScalingRollingUpdates

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 0.13.0 |
| [aws](#requirement\_aws) | >= 3.0 |
| [null](#requirement\_null) | >= 3.0 |

## Providers

| Name | Version |
|------|---------|
| [aws](#provider\_aws) | >= 3.0 |
| [null](#provider\_null) | >= 3.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [aws_cloudformation_stack.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudformation_stack) | resource |
| [aws_lb.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb) | resource |
| [aws_lb_listener.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener) | resource |
| [aws_lb_target_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group) | resource |
| [null_resource.tags_for_asg](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |
| [null_resource.tags_for_lt](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [aws\_lb\_internal](#input\_aws\_lb\_internal) | The Load Balancer which fronts the ASG is internal | `bool` | `true` | no |
| [batch\_max\_size](#input\_batch\_max\_size) | Maximum batch size for ASG rolling updates | `string` | `1` | no |
| [elb\_drop\_invalid\_headers](#input\_elb\_drop\_invalid\_headers) | Invalid headers being passed through to the target of the load balance may exploit vulnerabilities | `bool` | `true` | no |
| [health\_check\_path](#input\_health\_check\_path) | Path of HTTP Health Check | `string` | `"EC2"` | no |
| [health\_check\_port](#input\_health\_check\_port) | Path of HTTP Health Check | `number` | `80` | no |
| [health\_check\_type](#input\_health\_check\_type) | Check instance health with EC2 or ELB checks | `string` | `"EC2"` | no |
| [image\_id](#input\_image\_id) | AMI ID to use for this cluster | `string` | `""` | no |
| [instance\_security\_groups](#input\_instance\_security\_groups) | Security groups to apply to instances in ASG | `list(string)` | `[]` | no |
| [instance\_type](#input\_instance\_type) | Instance type to use in ASG | `string` | `""` | no |
| [keypair\_name](#input\_keypair\_name) | Name of an externally created keypair to attach to the automatically created instances. This only applies if launch\_template\_name is defined AND scaling\_object\_type is set to 'launchtemplate' | `string` | `""` | no |
| [launch\_template\_name](#input\_launch\_template\_name) | Name of externally created launch template to use with this module. If not defined and scaling\_object\_type is set to 'launchtemplate' (the default value), this will cause a launch template to be created in the cloudformation template | `string` | `""` | no |
| [launch\_template\_overrides](#input\_launch\_template\_overrides) | A list of maps defining any overrides to the Mixed Instance Policy Template. Required for Mixed Instance Policies. The map can contain the following values: instanceType (AWS Instance Type), launchTemplateSpecification (a separate launch template to use, object consisting of either launchTemplateId or launchTemplateName and optionally version), weightedCapacity (a weighted capacity entry for how frequently to use this override) | `list(map(string))` | `[]` | no |
| [launch\_template\_version](#input\_launch\_template\_version) | Version of externally created launch template to use with this module. If launch\_template\_name is defined this MUST be defined. | `string` | `""` | no |
| [lb\_access\_logging\_bucket](#input\_lb\_access\_logging\_bucket) | Optional target for ALB access logging | `string` | `null` | no |
| [lb\_access\_logging\_prefix](#input\_lb\_access\_logging\_prefix) | Optional target prefix for ALB access logging (only used if `lb_access_logging_bucket` is set) | `string` | `null` | no |
| [lb\_listener\_certificate](#input\_lb\_listener\_certificate) | ARN of the certificate to attach to the LB. Only if lb\_listener\_protocol is HTTPS | `string` | `""` | no |
| [lb\_listener\_port](#input\_lb\_listener\_port) | Port on which LB will listen | `number` | `80` | no |
| [lb\_listener\_protocol](#input\_lb\_listener\_protocol) | Protcol on which LB will listen | `string` | `"HTTP"` | no |
| [lb\_listener\_ssl\_policy](#input\_lb\_listener\_ssl\_policy) | AWS SSL Security Policy to use with an HTTPS listener on the Load Balancer | `string` | `"ELBSecurityPolicy-TLS-1-2-Ext-2018-06"` | no |
| [lb\_security\_groups](#input\_lb\_security\_groups) | Security groups to apply to Load Balancer | `list(string)` | n/a | yes |
| [max\_instance\_lifetime](#input\_max\_instance\_lifetime) | Maximum lifetime of instances in ASG in seconds (values must be either equal to 0 or between 604800 and 31536000 seconds.) | `number` | `0` | no |
| [max\_instances](#input\_max\_instances) | Max instances in ASG | `string` | `4` | no |
| [min\_instances](#input\_min\_instances) | Min instances in ASG | `string` | `2` | no |
| [min\_instances\_in\_service](#input\_min\_instances\_in\_service) | Minimum number of instances that must remain in service when autoscaling group is updated | `string` | n/a | yes |
| [name](#input\_name) | common name for resources in this module | `string` | `"ec2-spot-cluster"` | no |
| [on\_demand\_allocation\_strategy](#input\_on\_demand\_allocation\_strategy) | Strategy for allocation of instances to fulfill On-Demand capacity. Only valid value is currently 'prioritized'. | `string` | `"prioritized"` | no |
| [on\_demand\_base\_capacity](#input\_on\_demand\_base\_capacity) | Minimum amount of the ASG Capacity that should be filled with On Demand instances | `number` | `0` | no |
| [on\_demand\_percent\_above\_base\_capacity](#input\_on\_demand\_percent\_above\_base\_capacity) | Percentage of the instances beyond the base capacity of the ASG that should be On Demand | `number` | `100` | no |
| [pause\_time](#input\_pause\_time) | Time to wait for a new instance to check-in before marking it as failed. Specify PauseTime in the ISO8601 duration format (in the format PT#H#M#S, where each # is the number of hours, minutes, and seconds, respectively). | `string` | `"PT5M"` | no |
| [scaling\_object\_type](#input\_scaling\_object\_type) | The object type the autoscaling group should use as the basis for its instances. The default value is 'LaunchTemplate'. MixedInstancesPolicy is also supported, and future values may include 'LaunchConfigurationName', and 'InstanceId' | `string` | `"launchtemplate"` | no |
| [spot\_allocation\_strategy](#input\_spot\_allocation\_strategy) | Method by which to allocate spot instances for a MixedInstancesPolicy deployment. Valid values are lowest-price, capacity-optimized, and capacity-optimized-prioritized. | `string` | `"lowest-price"` | no |
| [spot\_instance\_pools](#input\_spot\_instance\_pools) | Number of Spot Instance pools to allocate your spot capacity for a MixedInstancesPolicy deployment. Applies only when lowest-price allocation strategy is in effect. | `number` | `2` | no |
| [spot\_max\_price](#input\_spot\_max\_price) | Maximum price to pay for Spot Instances in a MixedInstancesPolicy deployment. Default is blank, which equates to the price of on-demand instances. | `string` | `""` | no |
| [subnet\_ids](#input\_subnet\_ids) | Subnets ALB will listen on | `list(string)` | n/a | yes |
| [tags](#input\_tags) | Tags definition to apply to resources | `map(string)` | n/a | yes |
| [vpc\_id](#input\_vpc\_id) | VPC ID to use for target group | `string` | n/a | yes |

## Outputs

| Name | Description |
|------|-------------|
| [aws\_cloudformation\_stack](#output\_aws\_cloudformation\_stack) | AWS ASG CFN Stack resource |
| [aws\_lb](#output\_aws\_lb) | AWS LB resource |
| [aws\_lb\_listener](#output\_aws\_lb\_listener) | AWS LB listener resource |
| [aws\_lb\_target\_group](#output\_aws\_lb\_target\_group) | AWS LB Target Group resource |
| [rendered](#output\_rendered) | n/a |

## The Giants underneath this module
- pre-commit.com/
- terraform.io/
- github.com/tfutils/tfenv
- github.com/segmentio/terraform-docs