From d64b684831aff2df86d9cea8e23bf57c85b6772f Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Fri, 20 Oct 2017 22:53:17 +0100 Subject: 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 --- plugin/kubernetes/kubernetes.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'plugin/kubernetes/kubernetes.go') diff --git a/plugin/kubernetes/kubernetes.go b/plugin/kubernetes/kubernetes.go index f51ee8e3b..11b6cc882 100644 --- a/plugin/kubernetes/kubernetes.go +++ b/plugin/kubernetes/kubernetes.go @@ -338,10 +338,13 @@ func (k *Kubernetes) findServices(r recordRequest, zone string) (services []msg. ) if wildcard(r.service) || wildcard(r.namespace) { serviceList = k.APIConn.ServiceList() + endpointsList = k.APIConn.EndpointsList() } else { idx = r.service + "." + r.namespace serviceList = k.APIConn.SvcIndex(idx) + endpointsList = k.APIConn.EpIndex(idx) } + for _, svc := range serviceList { if !(match(r.namespace, svc.Namespace) && match(r.service, svc.Name)) { @@ -356,12 +359,6 @@ func (k *Kubernetes) findServices(r recordRequest, zone string) (services []msg. // Endpoint query or headless service if svc.Spec.ClusterIP == api.ClusterIPNone || r.endpoint != "" { - if wildcard(r.service) || wildcard(r.namespace) { - endpointsList = k.APIConn.EndpointsList() - } else { - idx = r.service + "." + r.namespace - endpointsList = k.APIConn.EpIndex(idx) - } for _, ep := range endpointsList { if ep.ObjectMeta.Name != svc.Name || ep.ObjectMeta.Namespace != svc.Namespace { continue -- cgit v1.2.3