Skip to content

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

Objects used by cluster-wait-for-members