plugin/kubernetes: implement HasSynced() (#1155)

* plugin/kubernetes: wait until api is ready

Wait for HasSynced before allowing startup to avoid startup race.

Also do a small refactor in findServices() to pull a check out of the
loop - only needs to be done once.

* sigh
This commit is contained in:
Miek Gieben 2017-10-20 22:53:17 +01:00 committed by GitHub
parent c1f67493de
commit d64b684831
13 changed files with 36 additions and 41 deletions

View file

@ -39,8 +39,14 @@ func setup(c *caddy.Controller) error {
c.OnStartup(func() error {
go kubernetes.APIConn.Run()
if kubernetes.APIProxy != nil {
go kubernetes.APIProxy.Run()
kubernetes.APIProxy.Run()
}
synced := false
for synced == false {
synced = kubernetes.APIConn.HasSynced()
time.Sleep(100 * time.Millisecond)
}
return nil
})