Commit Graph

77 Commits

Author SHA1 Message Date
Paul Hinze c70eab6500 aws: undeprecate min_elb_capacity; restore min capacity waiting
It was a mistake to switched fully to `==` when activating waiting for
capacity on updates in #3947. Users that didn't set `min_elb_capacity ==
desired_capacity` and instead treated it as an actual "minimum" would
see timeouts for every create, since their target numbers would never be
reached exactly.

Here, we fix that regression by restoring the minimum waiting behavior
during creates.

In order to preserve all the stated behavior, I had to split out
different criteria for create and update, criteria which are now
exhaustively unit tested.

The set of fields that affect capacity waiting behavior has become a bit
of a mess. Next major release I'd like to rework all of these into a
more consistently named block of config. For now, just getting the
behavior correct and documented.

(Also removes all the fixed names from the ASG tests as I was hitting
collision issues running them over here.)

Fixes #4792
2016-01-27 13:30:44 -06:00
Paul Hinze 319f7d77a0 Merge pull request #3947 from hashicorp/phinze/asg-wait-on-update
provider/aws: wait for ASG capacity on update
2016-01-06 15:55:43 -06:00
Paul Hinze 709d1f3599 Merge pull request #3704 from dayer4b/add-placement-group
added placement group as an option for autoscaling groups
2015-12-03 18:05:01 -06:00
Paul Hinze 7f9360797c provider/aws: wait for ASG capacity on update
It's a bit confusing to have Terraform poll until instances come up on
ASG creation but not on update. This changes update to also poll if
min_size or desired_capacity are changed.

This changes the waiting behavior to wait for precisely the desired
number of instances instead of that number as a "minimum". I believe
this shouldn't have any undue side effects, and the behavior can still
be opted out of by setting `wait_for_capacity_timeout` to 0.
2015-11-17 10:25:41 -06:00
Sunil K Chopra c7b02d9fdb handling updates 2015-11-02 09:33:46 -06:00
Sunil K Chopra 68c7baa20e as per advice from stack72 to stick to strings 2015-11-02 09:33:35 -06:00
Sunil K Chopra 0d2007e8bd as per advice from stack72, simplified 2015-11-02 09:26:25 -06:00
stack72 69b905fb92 Making the AutoScalingGroup name optiona 2015-10-31 09:24:46 +00:00
Sunil K Chopra 006cac56a2 added placement group as an option for autoscaling groups 2015-10-30 16:45:19 -05:00
Clint 3ce656b007 Merge pull request #2890 from pforman/asg-termination
Update AWS ASG termination policy code and tests
2015-10-26 16:42:53 -05:00
Paul Hinze 5f6c03f515 Merge pull request #3191 from hashicorp/f-asg-wait-config
provider/aws: configurable capacity waiting duration
2015-10-14 10:34:55 -05:00
Paul Hinze a811a72f11 provider/aws: fix force_delete on ASGs
The `ForceDelete` parameter was getting sent to the upstream API call,
but only after we had already finished draining instances from
Terraform, so it was a moot point by then.

This fixes that by skipping the drain when force_delete is true, and it
also simplifies the field config a bit:

 * set a default of false to simplify the logic
 * remove `ForceNew` since there's no need to replace the resource to
   flip this value
 * pull a detail comment from code into the docs
2015-10-12 17:10:01 -05:00
Paul Hinze 506aae2f28 provider/aws: configurable capacity waiting duration
move wait for capacity timeout from a constant to a configurable
2015-09-08 13:22:42 -05:00
Clint Shryock 0c2f189d08 provider/aws: Update to aws-sdk 0.9.0 rc1 2015-08-17 13:27:16 -05:00
Paul Forman c617445fec Update AWS ASG termination policy code and tests
The initial commit of AWS autoscaling group termination policy was
unfinished.  It only worked on "create", and so had a needless ForceNew
that would rebuild autoscaling groups on any change.  It also used a
HashString set, so it didn't preserve ordering of multiple policies
correctly.

Added the "update" operation, and converted to a TypeList to preserve
ordering.  In addition, removing the policy or setting it to a null list
will reset the policy to "Default", the standard AWS policy.

Updated the acceptance tests to verify the update, but the null case is
difficult to test.
2015-07-29 22:56:56 -06:00
Clint Shryock 579ccbefea provider/aws: Update source to comply with upstream breaking change 2015-07-28 15:29:46 -05:00
Clint Shryock ed98e02e4a provider/aws: Improved Auto Scaling Groups updates
- availability zones are optional if you specify a VPC Zone Identifier (subnet)
- availability zones can be updated in place
2015-07-14 10:19:10 -05:00
Radek Simko 23459ec840 provider/aws: Add validation for aws_autoscaling_group.name 2015-06-26 15:43:06 +01:00
Nathan Sullivan 4a791c1b41 default_cooldown change shouldnt force new resource - https://github.com/hashicorp/terraform/issues/2509 - credit to
@phinze and @mzupan for https://github.com/hashicorp/terraform/pull/2147
2015-06-26 15:51:31 +10:00
Clint Shryock 6e818785af provider/aws: Update ASGs to support in-place updates for Load Balancers 2015-06-24 16:37:23 -05:00
Paul Hinze 611741c108 typo 2015-06-18 15:47:54 -05:00
Jack Pearkes 6c29671561 provider/aws: clarify scaling timeout error
This just gives the user a better hint to why their scaling may have timed out.
2015-06-05 17:14:21 -04:00
Paul Hinze b71fa3d0ae provider/aws: handle upstream aws-sdk-go repo move
`awslabs/aws-sdk-go => aws/aws-sdk-go`

Congrats to upstream on the promotion. :)
2015-06-03 13:36:57 -05:00
Mike Zupan e7fa855174 making the update happen 2015-05-30 02:51:56 -07:00
Mike Zupan c122323d14 Switching the healthcheck shouldn't cause a refresh of the resource
Switching the healthcheck from elb->ec2 or ec2->elb shouldn't cause the ASG to re-create itself
2015-05-29 13:40:15 -07:00
Chris Bednarski 3768bdeae1 Updated the names for autoscaling to match breaking changes in upstream
AutoScalingGroup -> Group

04d1270245
2015-05-29 00:55:59 -07:00
Paul Hinze 31258e06c6 provider/aws: fix breakages from awserr refactor
This landed in aws-sdk-go yesterday, breaking the AWS provider in many places:

3c259c9586

Here, with much sedding, grepping, and manual massaging, we attempt to
catch Terraform up to the new `awserr.Error` interface world.
2015-05-20 06:21:23 -05:00
Paul Hinze b56a42627f provider/aws: ASGs can wait for ELB InService
This enhances the waiting strategy introduced in #1839 to wait for each
ASG instance to become InService in attached ELBs before continuing.
2015-05-14 15:03:53 -05:00
Paul Hinze 03530d1285 provider/aws: handle in progress errs from ASG deletes
If an AutoScalingGroup is in the middle of performing a Scaling
Activity, it cannot be deleted, and yields a ScalingActivityInProgress
error.

Retry the delete for up to 5m so we don't choke on this error. It's
telling us something's in progress, so we'll keep trying until the
scaling activity completed.
2015-05-06 18:54:59 -05:00
Paul Hinze 063454e9b8 provider/aws: wait for ASG capacity on creation
On ASG creation, waits for up to 10m for desired_capacity or min_size
healthy nodes to show up in the group before continuing.

With CBD and proper HealthCheck tuning, this allows us guarantee safe
ASG replacement.
2015-05-06 18:34:20 -05:00
Phil Frost 33183c078b Implement a hash function for string sets
Sets of strings are pretty common. Let's not duplicate the function
necessary to create a set of strings in so many places.
2015-05-05 12:47:18 -04:00
Mike Zupan 0177be2a66 need to update aws with the change if there is one 2015-04-25 20:00:04 -07:00
Mike Zupan 9fe6317348 don't need to create a new ASG for this change
Tested

```
aws_autoscaling_group.rabbit: Modifying...
  health_check_grace_period: "200" => "3000"
aws_autoscaling_group.rabbit: Modifications complete
```
2015-04-25 19:50:33 -07:00
Clint Shryock 3e6822ce08 more cleans ups of SDK reference 2015-04-16 15:28:18 -05:00
Clint Shryock 7a99dd48b2 provider/aws: Convert Launch Configuration over to upstream
- removes extra ASG connection
2015-04-16 07:10:17 -05:00
Clint Shryock 723be13f96 go fmt asg things 2015-04-15 15:30:35 -05:00
Clint Shryock 1f7d0944f1 provider/aws: Convert AWS ASG to upstream aws-sdk-go 2015-04-15 15:29:59 -05:00
Clint Shryock 3d65998282 provider/aws: Fix issue with tainted ASG groups failing to re-create 2015-04-01 09:24:26 -05:00
Clint Shryock deda59b50e minor code cleanups to get acceptance tests passing 2015-03-26 14:49:15 -05:00
Radek Simko fff05e2aad Tags support added for AWS ASG 2015-03-26 07:35:15 +00:00
Clint Shryock f97343dea1 provider/aws: Fix issue in AWS AutoScaling Group where health_check_type is not set correctly 2015-03-20 10:11:12 -05:00
Jack Pearkes 053a7c0a8b Merge pull request #1052 from TimeInc/hct-bugfix
Bug: Prevent empty string to be used as default health_check_type
2015-02-27 09:33:46 -08:00
Radek Simko e378ea42b8 Prevent empty string to be used as default health_check_type 2015-02-25 21:46:56 +00:00
Clint Shryock f3ba181861 Swap awslabs/aws-sdk-go for hashicorp fork
A temporary change to prevent upstream break while awslabs continues to
refactor.
2015-02-25 15:29:11 -06:00
Clint Shryock 92bf85925b providers/aws: Convert Launch Configurations to awslabs/aws-sdk-go 2015-02-24 21:02:01 -06:00
Clint Shryock 4326b6b8b5 cleanups after feedback 2015-02-20 14:28:14 -06:00
Clint Shryock b38a3767eb provider/aws: Convert AWS AutoScalingGroup to awslabs/aws-sdk-go 2015-02-20 11:28:20 -06:00
Clint Shryock 57300d32c6 merge master 2015-02-20 08:55:54 -06:00
Radek Simko e149a97658 Make composite literals to use keyed fields
This will prevent following error:
 - * composite literal uses unkeyed fields
2015-02-18 18:26:59 +00:00
Mitchell Hashimoto 5a64d0900b providers/aws: test for allowing in-place lC update 2015-02-17 16:12:02 -08:00