cluster-wait-for-members¶
Wait for Cluster Members to Complete Pipelines
This task makes the cluster pipeline wait until all the cluster members
have satisfied cluster/wait-filter. It does this by waiting on
individual machines with drpcli machines await, so the loop is waiting
on events, not polling the API.
Membership is re-resolved on every pass rather than read once at the start. A cluster's members are not fixed for the life of this task: one can be removed, and one can be merged into another machine, which is what happens when a node discovered out of band registers a second machine on booting in band and an adoption task moves its profiles and params across and deletes the original. The cluster then holds the same node under a UUID that did not exist when this task started. A member that has gone is dropped rather than failing the task; members that appear are picked up on the next pass.
cluster/wait-filter may match a failed member as well as a finished one
-- that is how a failure releases the wait instead of holding it to
cluster/provision-timeout. Matching the filter is therefore not the
same as having succeeded, so each released member is checked against
WorkflowComplete and reported through cluster/fail-on-machine-failure.
Since there is no "break" in the loop, you cannot stop this loop from the cluster pipeline; however, you can easily break the loop by clearing the cluster machines Workflow and marking them Ready.
Objects that Reference cluster-wait-for-members¶
Not used in current content packs