realestate-com-au / stackup

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

Support CAPABILITY_AUTO_EXPAND #67

Closed amcinnes closed 5 years ago

amcinnes commented 5 years ago

There is a capability called CAPABILITY_AUTO_EXPAND (see https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html ) and I don't see a way to turn it on from the command line at the moment.

Should we have that capability always on by default, similar to CAPABILITY_NAMED_IAM?

katherinelim commented 5 years ago

There are a few caveats to having CAPABILITY_AUTO_EXPAND on by default according to the documentation link you included (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)

It could change the expected behaviour of stackup for some users?

CAPABILITY_AUTO_EXPAND

Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.

Change sets do not currently support nested stacks. If you want to update a stack from a stack template that contains macros and nested stacks, you must update the stack directly from the template using this capability.

Important

You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs.

Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without AWS CloudFormation being notified.

TheTaylorHicks commented 5 years ago

Hi all. I'm going to close this issue as it has hopefully been addressed in in release 1.4.3 and https://github.com/realestate-com-au/stackup/pull/75.

Please reopen if the above PR does not completely address the issue.