Good Health via Stack-Remove-Members

Registered by Mike Spreitzer on 2014-10-19

This blueprint describes how an OS::Heat::AutoScalingGroup can maintain member health, as determined by the member's OS::Neutron::PoolMember, using the Heat API for removing members from a stack. Each group member is a resource with an ID, let's say X, and a defining snippet that prescribes a nested stack that contains: (a) a resource whose defining snippet is the one that the user provided as the group's "resource" property, which necessarily somehow contains an OS::Neutron::PoolMember and exposes its ID; (b) an OS::Heat::StackMembersRemover whose webhook will cause the removal of X (and also its replacement, thanks to the interception by the ASG code) from the nested stack that backs the scaling group; and (c) a Ceilometer alarm that reacts to sufficiently bad health readings from the PoolMember of (a) by invoking the webhook of (b).

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Mike Spreitzer
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

When automatic convergence becomes available for scaling group members, a simpler outline becomes possible. To get a scaling group member that is backed by a stack replaced it will suffice to delete that stack; this will make the resource backed by that stack unhealthy in a way that convergence will detect and repair. To complete the circuit we will need a resource type that produces a webhook that, when hit, deletes a stack identified in the resource's properties.

See https://blueprints.launchpad.net/heat/+spec/healthy-asg-via-stack-update-by-deltas for an alternative.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.