I suspected this was the case. It never occurred to me to look at the logs this way though. Good call. Here's what I am seeing:
Mar 19 11:13:06 core-1 systemd[1]: Starting etcd...
Mar 19 11:13:06 core-1 systemd[1]: Started etcd.
Mar 19 11:13:06 core-1 systemd[1]: Starting Network fabric for containers...
Mar 19 11:13:06 core-1 etcd[905]: [etcd] Mar 19 11:13:06.311 INFO | Discovery via
https://discovery.etcd.io using prefix /ba1fb75ca25f27451f061db127144648.
Mar 19 11:13:06 core-1 etcdctl[925]: Error: Cannot sync with the cluster using peers
127.0.0.1:4001Mar 19 11:13:06 core-1 systemd[1]: flanneld.service: control process exited, code=exited status=2
Mar 19 11:13:06 core-1 systemd[1]: Failed to start Network fabric for containers.
Mar 19 11:13:06 core-1 systemd[1]: Unit flanneld.service entered failed state.
Mar 19 11:13:06 core-1 systemd[1]: flanneld.service failed.
Mar 19 11:13:06 core-1 systemd[1]: Started etcd.
Mar 19 11:13:06 core-1 systemd[1]: Starting discoverd...
Mar 19 11:13:06 core-1 systemd[1]: Starting Docker Application Container Engine...
Mar 19 11:13:06 core-1 systemd[1]: Started Docker Application Container Engine.
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="+job serveapi(fd://)"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="+job init_networkdriver()"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="Listening for HTTP on fd ()"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="-job init_networkdriver() = OK (0)"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="Loading containers: start."
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="Loading containers: done."
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="docker daemon: 1.5.0 a8a31ef-dirty; execdriver: native-0.2; graphdriver: overlay"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="+job acceptconnections()"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="-job acceptconnections() = OK (0)"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="POST /v1.17/images/create?fromImage=flynn%2Fdiscoverd%3Alatest"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="+job pull(flynn/discoverd, latest)"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="+job resolve_repository(flynn/discoverd)"
Mar 19 11:13:06 core-1 dockerd[948]: time="2015-03-19T11:13:06Z" level="info" msg="-job resolve_repository(flynn/discoverd) = OK (0)"
Mar 19 11:13:06 core-1 docker[937]: Pulling repository flynn/discoverd
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.019 INFO | Discovery _state was empty, so this machine is the initial leader.
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.019 INFO | Discovery fetched back peer list: []
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.019 INFO | 8c067c441f0141ae95c61f4481da37af is starting a new cluster
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | etcd server [name 8c067c441f0141ae95c61f4481da37af, listen on :4001, advertised url
http://172.17.8.100:4001]
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | peer server [name 8c067c441f0141ae95c61f4481da37af, listen on :7001, advertised url
http://172.17.8.100:7001]
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | 8c067c441f0141ae95c61f4481da37af starting in peer mode
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | 8c067c441f0141ae95c61f4481da37af: state changed from 'initialized' to 'follower'.
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | failed to get local etcd versions: open /usr/libexec/etcd/internal_versions/: no such file or directory
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | 8c067c441f0141ae95c61f4481da37af: state changed from 'follower' to 'leader'.
Mar 19 11:13:07 core-1 etcd[905]: [etcd] Mar 19 11:13:07.023 INFO | 8c067c441f0141ae95c61f4481da37af: leader changed from '' to '8c067c441f0141ae95c61f4481da37af'.
Mar 19 11:13:08 core-1 docker[937]: b9f7ecc9c143: Pulling image (latest) from flynn/discoverd
Mar 19 11:13:08 core-1 docker[937]: b9f7ecc9c143: Pulling dependent layers
Mar 19 11:13:08 core-1 docker[937]: 511136ea3c5a: Pulling metadata
Mar 19 11:13:09 core-1 docker[937]: 511136ea3c5a: Pulling fs layer
Mar 19 11:13:10 core-1 docker[937]: 511136ea3c5a: Download complete
Mar 19 11:13:10 core-1 docker[937]: a643fa1f2742: Pulling metadata
Mar 19 11:13:11 core-1 docker[937]: a643fa1f2742: Pulling fs layer
Mar 19 11:13:11 core-1 systemd[1]: flanneld.service holdoff time over, scheduling restart.
Mar 19 11:13:11 core-1 systemd[1]: Stopping Network fabric for containers...
Mar 19 11:13:11 core-1 systemd[1]: Starting Network fabric for containers...
Mar 19 11:13:11 core-1 etcdctl[1036]: { "Network": "
172.30.0.0/16" }
It perfectly shows the ordering and how it is wrong. Is this an issue with flannel starting too early or should I add a requirement to my discoverd to ensure flannel has started?