Using nested stacks is a best practice in AWS CloudFormation, and indeed they solve many problems (code reuse, stack limits, etc).
When updating a stack (either through UpdateStack or ChangeSets), one can provide UsePreviousTemplate=True
in order to instruct CloudFormation to use whatever template is currently live for the stack. This is useful if all you want to is update some parameters, and especially if you have some automated script doing the update (we update a parameter with the SHA of the code on github that we want to put live, and CloudFormation does the rest for us -- build and deploy, so we update this parameter from a lambda as soon as we have the code ready for a deploy); in this case you want to make sure that all you do is update the stuff controlled by the parameter, and not accidentally provide a new (or old) template.
There seems to be no documentation on what happens if you give this parameter when there are nested stacks involved, nor does there seem to be any place where one could specify anything useful in this regard. There also seems to be nothing useful in the definition of the nested stack:
Type: AWS::CloudFormation::Stack
Properties:
NotificationARNs:
- String
Parameters:
Key : Value
Tags:
- Tag
TemplateURL: String
TimeoutInMinutes: Integer
Hence the following question:
- What is the behaviour when doing an update with
UsePreviousTemplate=True
on a stack with nested stacks? - Is it possible to do a stack update, using something like
UsePreviousTemplate=True
not only for the parent stack but also for the nested stacks?