aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/setup.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-10-20 22:53:17 +0100
committerGravatar GitHub <noreply@github.com> 2017-10-20 22:53:17 +0100
commitd64b684831aff2df86d9cea8e23bf57c85b6772f (patch)
tree7bf9e27b01d11b648255be9dc00e5964747772ba /plugin/kubernetes/setup.go
parentc1f67493de3f13373082ee2e1ec6234c15642854 (diff)
downloadcoredns-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.go8
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
})