diff options
author | 2018-10-10 15:28:45 -0400 | |
---|---|---|
committer | 2018-10-10 12:28:45 -0700 | |
commit | 974ed086f25ad45a01947e276e2eb8aa73d007a3 (patch) | |
tree | 2c1468f5a4e90634382a81904ef2736ca44198a7 /plugin/kubernetes/ns.go | |
parent | 8432f1420732e61cb1a7ebb9d6446db6f43aa850 (diff) | |
download | coredns-974ed086f25ad45a01947e276e2eb8aa73d007a3.tar.gz coredns-974ed086f25ad45a01947e276e2eb8aa73d007a3.tar.zst coredns-974ed086f25ad45a01947e276e2eb8aa73d007a3.zip |
use keys (#2167)
Diffstat (limited to 'plugin/kubernetes/ns.go')
-rw-r--r-- | plugin/kubernetes/ns.go | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/plugin/kubernetes/ns.go b/plugin/kubernetes/ns.go index 2ccb51ef3..722dc9ef4 100644 --- a/plugin/kubernetes/ns.go +++ b/plugin/kubernetes/ns.go @@ -4,6 +4,7 @@ import ( "net" "strings" + "github.com/coredns/coredns/plugin/kubernetes/object" "github.com/miekg/dns" api "k8s.io/api/core/v1" ) @@ -22,8 +23,9 @@ func (k *Kubernetes) nsAddr() *dns.A { localIP := k.interfaceAddrsFunc() rr.A = localIP -FindEndpoint: - for _, ep := range k.APIConn.EpIndexReverse(localIP.String()) { + ep := k.APIConn.EpIndexReverse(localIP.String()) + if ep != nil { + FindEndpoint: for _, eps := range ep.Subsets { for _, addr := range eps.Addresses { if localIP.Equal(net.ParseIP(addr.IP)) { @@ -41,15 +43,12 @@ FindEndpoint: return rr } -FindService: - for _, svc := range k.APIConn.ServiceList() { - if svcName == svc.Name && svcNamespace == svc.Namespace { - if svc.ClusterIP == api.ClusterIPNone { - rr.A = localIP - } else { - rr.A = net.ParseIP(svc.ClusterIP) - } - break FindService + svc := k.APIConn.SvcIndex(object.ServiceKey(svcNamespace, svcName)) + if svc != nil { + if svc.ClusterIP == api.ClusterIPNone { + rr.A = localIP + } else { + rr.A = net.ParseIP(svc.ClusterIP) } } |