Weave Net

Uniform Dynamic Clusters

A uniform dynamic cluster has the following characteristics:

Bootstrapping

On each initial peer N, at boot, via systemd:

hostN$ weave launch --no-restart --name ::N --ipalloc-init seed=$SEED $PEERS

Where,

For example, if you have three initial peers you would specify the following:

host1$ weave launch --no-restart --name ::1 --ipalloc-init seed=$SEED $PEERS
host2$ weave launch --no-restart --name ::2 --ipalloc-init seed=$SEED $PEERS
host3$ weave launch --no-restart --name ::3 --ipalloc-init seed=$SEED $PEERS

Where

SEED="::1,::2,::3"
PEERS="host1 host2 host3"

Adding a Peer

On each new peer, at boot, via systemd:

hostN$ weave launch --no-restart --name ::N --ipalloc-init seed=$SEED $PEERS

Where,

Note that unlike Interactive and Uniform Fixed Cluster deployments there is no weave prime step. You can add as many new peers in parallel as you like, even under conditions of partition, and they will all (eventually) join safely. This is ideal for use in conjunction with asynchronous provisioning systems such as puppet or chef.

For maximum robustness, you should distribute an updated /etc/sysconfig/weave file including the new peer to all existing peers.

Removing a Peer

On the peer to be removed:

weave reset

You may remove a seed peer, as long as there is at least one other seed peer left in the network.

Then, distribute an updated /etc/sysconfig/weave to the remaining peers, omitting the removed peer from $PEERS.

On each remaining peer:

weave forget <removed peer>

This step is not mandatory, but it will eliminate log noise and spurious network traffic by stopping reconnection attempts.