coreos/etcd — pull request #1108 by philips (2014-09-18 18:08:15+00:00)
Title: wip: implement the bootstrap-config option

The basic goal of this PR is to make the static bootstrap process not expose the concept of ID and to instead re-introduce the human-readable name concept. This will also reclaim the 'peers' flag to be used by proxy or dynamic configuration. Note: Names can be changed later via dynamic configuration but the ID will remain the same.

TODO
- [ ] Parse the new space separated bootstrap-config format
- [ ] Ensure that the NodeName.ID()'s don't have collisions
- [ ] Generate initial cluster ID from a similar hash of the bootstrap-config
- [ ] Write documentation on static bootstrap

```
./etcd -name node1 -bind-addr 127.0.0.1:4001 -peer-bind-addr :7001 -bootstrap-config 'node1=localhost:7001 node2=localhost:7002 node3=localhost:7003'
./etcd -name node2 -bind-addr 127.0.0.1:4002 -peer-bind-addr :7002 -bootstrap-config 'node1=localhost:7001 node2=localhost:7002 node3=localhost:7003'
./etcd -name node3 -bind-addr 127.0.0.1:4003 -peer-bind-addr :7003 -bootstrap-config 'node1=localhost:7001 node2=localhost:7002 node3=localhost:7003'
```