aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/ns.go
diff options
context:
space:
mode:
authorGravatar Chris O'Haver <cohaver@infoblox.com> 2018-10-10 15:28:45 -0400
committerGravatar John Belamaric <jbelamaric@google.com> 2018-10-10 12:28:45 -0700
commit974ed086f25ad45a01947e276e2eb8aa73d007a3 (patch)
tree2c1468f5a4e90634382a81904ef2736ca44198a7 /plugin/kubernetes/ns.go
parent8432f1420732e61cb1a7ebb9d6446db6f43aa850 (diff)
downloadcoredns-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.go21
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)
}
}