Jump to: navigation, search

Difference between revisions of "Heat/StackUpdate"

m (Text replace - "__NOTOC__" to "")
(Replaced content with "This page used to contain various design documentation about the state of stack updates in around mid-2012.")
 
Line 1: Line 1:
 
+
This page used to contain various design documentation about the state of stack updates in around mid-2012.
= [[UpdateStack]] =
 
 
 
== [[UpdateStack]] Overview ==
 
 
 
AWS Cloudformation provides an API action which allows an updated template (and/or parameters) to be processed, such that the definition of an existing, running stack can be modified.
 
 
 
There are three strategies for updating resources in the stack, which approach is used varies depending on the resource, and the property of the resource which is being modified.
 
 
 
- Update with no interruption
 
- Update with some interruption
 
- Update requires replacement
 
 
 
The per-resource behavior is defined in the [AWS CFN user guide](http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).  We are aiming to implement resource updates such that we respond in the same way as AWS where possible.
 
 
 
== [[UpdateStack]] Design ==
 
 
 
The [[UpdateStack]] action works in a similar way to [[CreateStack]], it takes a template and parameters, which are parsed in the engine to define the required resources.  The code implementing [[UpdateStack]] then compares each resource with the resource in the currently running stack (by comparing the parsed JSON snippet which represents the resource).  If the resource snippets differ, then the resources are deemed to be different and update is performed for that resource - if the resource has not been modified, it will *not* be updated.
 
 
 
There is a default update behaviour, which is to simply remove the existing resource, and create a new resource with the new template definition.  Additionally each resource has a "handle_update" method which can implement more complex logic to allow non-interrupting or semi-interrupting updates.  Note that the capability to update existing resources is still TODO at this point.
 
 
 
== [[UpdateStack]] Status ==
 
 
 
Initial support for [[UpdateStack]] has been added for heat v5.  Currently we only implement the "Update requires replacement" strategy, as the default strategy for all resources/properties.
 
 
 
It is planned to review update capability on a per-resource basis and where possible implement non-interrupting and semi-interrupting updates to existing resources.  Note however that in many cases AWS simply replaces resources anyway, so the current scheme should remain a sensible default.
 
 
 
The status of each resource/property wrt [[UpdateStack]] aligment with AWS behaviour will be tracked on the
 
[http://wiki.openstack.org/Heat/AWS-template-support-parity AWS Template Support Parity page].
 

Latest revision as of 20:27, 1 August 2014

This page used to contain various design documentation about the state of stack updates in around mid-2012.