promenade/charts/etcd/templates/bin
Mark Burnett dcac36c8cf Fix: Avoid etcd bootstrap race
This adds a sleep to avoid a tight restart loop for etcd when running in
bootstrap mode (e.g. to spin up etcd for calico).

This doesn't seem to have manifested before, but I saw it while
troubleshooting an environment yesterday, and I'm surprised it hasn't
been seen before.

The issue manifests as repeated teardown and replacement of the
bootstrapping <svc>-etcd-<hostname> pod put in place by the anchor.  The
log messages in the etcd container of the pod will say that etcd is
terminating because it got SIGTERM, and a large number of pause
containers will be left behind and visible in `docker ps -a`.  The
constant pod replacement was racing with how quickly kubernetes would
see the healthy (non-anchor) etcd pod allowing the anchor to be able to
reach etcd over the kubernetes service to check its health.  A successful
health check by the anchor ends the bootstrapping phase, exiting the
race.

I'm confident there's a better approach to clean this section of code
up; however, the concern with this PS is to address the problematic
tight loop, allowing a more rigorous improvement to come later.

Change-Id: I0e3181194cfcd376967672b47a5e126103b4dfe4
2018-09-07 07:52:44 -05:00
..
_etcdctl_anchor.tpl Fix: Avoid etcd bootstrap race 2018-09-07 07:52:44 -05:00
_pre_stop.tpl Refactor etcd Chart 2017-11-29 17:33:41 +00:00
_readiness.tpl Refactor etcd Chart 2017-11-29 17:33:41 +00:00