realestate-com-au / stackup

a simple CLI and Ruby API for AWS CloudFormation
MIT License
97 stars 34 forks source link

Applying change-set to create stack fails #58

Closed stevemac007 closed 3 years ago

stevemac007 commented 6 years ago

Hi - me again :D

Found another issue when using change-set's - this time it's with using change-sets to create new stacks.

After successfully creating a change-set in create mode, when we go to apply the stack it creates correctly but fails with an unexplainable error.

stackup cdn-dev-f change-set apply \
            --debug \
                --retry-limit 10 \
                --wait-poll-interval 10
DEBUG: [Aws::CloudFormation::Client 200 0.214019 0 retries] describe_stack_events(stack_name:"cdn-dev-f")
DEBUG: [Aws::CloudFormation::Client 200 0.21583 0 retries] execute_change_set(stack_name:"cdn-dev-f",change_set_name:"pending")
DEBUG: [Aws::CloudFormation::Client 200 0.090555 0 retries] describe_stack_events(stack_name:"cdn-dev-f")
INFO: [21:55:02] cdn-dev-f - CREATE_IN_PROGRESS - User Initiated
DEBUG: [Aws::CloudFormation::Client 200 0.108543 0 retries] describe_stacks(stack_name:"cdn-dev-f")
DEBUG: stack_status=CREATE_IN_PROGRESS
DEBUG: [Aws::CloudFormation::Client 200 0.196638 0 retries] describe_stack_events(stack_name:"cdn-dev-f")
INFO: [21:55:06] ImageResizeLambdaStack - CREATE_IN_PROGRESS
INFO: [21:55:06] ImagePropStack - CREATE_IN_PROGRESS
INFO: [21:55:07] ImageResizeLambdaStack - CREATE_IN_PROGRESS - Resource creation Initiated
INFO: [21:55:07] ImagePropStack - CREATE_IN_PROGRESS - Resource creation Initiated
DEBUG: [Aws::CloudFormation::Client 200 0.069392 0 retries] describe_stacks(stack_name:"cdn-dev-f")
DEBUG: stack_status=CREATE_IN_PROGRESS
DEBUG: [Aws::CloudFormation::Client 200 0.188284 0 retries] describe_stack_events(stack_name:"cdn-dev-f")
INFO: [21:55:55] ImageResizeLambdaStack - CREATE_COMPLETE
INFO: [21:55:55] ImagePropStack - CREATE_COMPLETE
INFO: [21:55:58] S3ImageBuckets - CREATE_IN_PROGRESS
INFO: [21:55:59] S3ImageBuckets - CREATE_IN_PROGRESS - Resource creation Initiated
DEBUG: [Aws::CloudFormation::Client 200 0.081156 0 retries] describe_stacks(stack_name:"cdn-dev-f")
DEBUG: stack_status=CREATE_IN_PROGRESS
DEBUG: [Aws::CloudFormation::Client 200 0.206843 0 retries] describe_stack_events(stack_name:"cdn-dev-f")
INFO: [21:57:18] cdn-dev-f - CREATE_COMPLETE
DEBUG: [Aws::CloudFormation::Client 200 0.069191 0 retries] describe_stacks(stack_name:"cdn-dev-f")
DEBUG: stack_status=CREATE_COMPLETE
ERROR: update failed

You can see that the final stack_status is CREATE_COMPLETE, but then we get this ERROR: update failed. This returns non-zero and so borks out our deploy process.

Happy to provide more details to help identify this issue.

mdub commented 6 years ago

Mmmm; I think I was a bit picky in https://github.com/realestate-com-au/stackup/blob/fd18e6102d37eaa031b1a45e1a4ae85c9307147f/lib/stackup/change_set.rb#L96

We could probably relax it to:

modify_stack(/^(CREATE|UPDATE)_COMPLETE$/, "change failed")
stevemac007 commented 6 years ago

That looks right - Who in their right mind would be using a change-set to create a stack? Me it seems.

Thanks for the rapid review.

nullus commented 5 years ago

I had the same issue, it should be addressed by https://github.com/realestate-com-au/stackup/pull/71

ps-jay commented 4 years ago

71 is merged, should this be closed?

mdub commented 3 years ago

Yeah, fixed, right? Closing.