diff options
author | 2017-10-20 22:53:17 +0100 | |
---|---|---|
committer | 2017-10-20 22:53:17 +0100 | |
commit | d64b684831aff2df86d9cea8e23bf57c85b6772f (patch) | |
tree | 7bf9e27b01d11b648255be9dc00e5964747772ba /plugin/kubernetes/setup.go | |
parent | c1f67493de3f13373082ee2e1ec6234c15642854 (diff) | |
download | coredns-d64b684831aff2df86d9cea8e23bf57c85b6772f.tar.gz coredns-d64b684831aff2df86d9cea8e23bf57c85b6772f.tar.zst coredns-d64b684831aff2df86d9cea8e23bf57c85b6772f.zip |
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
Diffstat (limited to 'plugin/kubernetes/setup.go')
-rw-r--r-- | plugin/kubernetes/setup.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go index cc823d54e..13e6c810f 100644 --- a/plugin/kubernetes/setup.go +++ b/plugin/kubernetes/setup.go @@ -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 }) |