Adapting Resources List in Stacks to Real World as Stack Convergence

Registered by Masahito Muroi

Heat matches a list of resources in a stack with real world after any resources in stacks disappear.
This BP improves stack-convergence which has already been proposed as BP.

This BP offers stack owners to choose following two types of option in their stacks.
 1. Cutting down resources from stacks if resources in stack disappear
 2. Recreating resources in stacks if resources in stack disappear
    The second feature has already been proposed in https://blueprints.launchpad.net/heat/+spec/stack-convergence

Using elastic-stack changes result of two APIs, resource-list and resource-show.
 - resource-list only returns a listing of active resources in stacks
 - resource-show only returns properties of existing resource

Since no active resource is cut off from stacks by elastic-stack user updates the stack with same template used in last stack-update or stack-create to recreate the cut off resource.

=== good point ===
Elastic stack makes it be possible to separate stack owner permission to operators and resource owner permission to users.
This means user has abilities to change some resources by another OpenStack API like Nova API nevertheless operator can handle the resources by Heat.

=== usecase ===
character
  infra operator - who provides some templates for app developer and private cloud powered by OpenStack.
                   Operator creates new stacks when the operator receives requests from app developer.
  app developer - who creates new app and deploys the app into stacks created by infra operator.
                  App developer is allowed to call some particular OpenStack API.

 1. Infra operator provides listing of template like LAMP for an app developer.
 2. The developer selects a template suited to their app and infra operator creates new stacks.
 3. The developer manages web site using OpenStack API.
    For example, in case of LAMP architecture the developer is allowed to call change-weight in LB and delete vm instances.
 4. The developer doesn't have permission to create any resources to avoid overcapacity.
 5. The operator creates new resources if the developer wants to increase resource for their app

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

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.