Reconfigure or Recreate Resources Matching to Template Triggerd by Stack-Update

Registered by Masahito Muroi

If there is a difference of property of stack resource between in realworld and in a template during stack-update, Heat reconfigures the property value matching to the template.
Though users change properties by OpenStack API Heat repairs these changed properties matching to properties written in an updated template after stack-update.

If resources written in a template disappear before stack-update, Heat recreates these resources with properties written in updated templates.

Heat doesn't check properties and status of resources in case of there is no difference in properties in Heat DB and an updated template.
So some changes for property from OpenStack API except Heat API cause user-unexpected errors in stack-update since realworld property and template property is different.

To prevent unexpected errors in stack-update Heat checks whether all properties of resource in stack is changed or not at begging of the operation.

=== usecase 1 ===
To prevent unexpected errors caused by unexpected resource's status

 1. User creates a new stack consisting of OS::Neutron::Subnet with enable_dhcp = True
 2. Using Neutron API the user or another user changes the enable_dhcp to False
 3. Users update the stack with a new template which has some ports expecting the subnet's enable_dhcp is True.
 4. Since Heat checks and repairs changed properties before updating all resources no error occurs in stack-update.

=== usecase 2 ===
  1. User create a new stack consisting of 2 vms by a template which has resources, vm-a and vm-b.
  2. Vm-b disappears by failure of Hypervisor or calling delete-vm API in Nova API.
  3. User calls stack-update API with a new template which has 3 vms named vm-a, vm-b and vm-c.
  4. Since heat recreates vm-b in the stack by stack-repair the user can use the 3 vms after the stack-update.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Masahito Muroi
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Thomas Herve

Related branches

Sprints

Whiteboard

this needs to be proposed as a spec, before approval.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.