aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/ns.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/ns.go')
-rw-r--r--plugin/kubernetes/ns.go21
1 files changed, 11 insertions, 10 deletions
diff --git a/plugin/kubernetes/ns.go b/plugin/kubernetes/ns.go
index 722dc9ef4..2ccb51ef3 100644
--- a/plugin/kubernetes/ns.go
+++ b/plugin/kubernetes/ns.go
@@ -4,7 +4,6 @@ import (
"net"
"strings"
- "github.com/coredns/coredns/plugin/kubernetes/object"
"github.com/miekg/dns"
api "k8s.io/api/core/v1"
)
@@ -23,9 +22,8 @@ func (k *Kubernetes) nsAddr() *dns.A {
localIP := k.interfaceAddrsFunc()
rr.A = localIP
- ep := k.APIConn.EpIndexReverse(localIP.String())
- if ep != nil {
- FindEndpoint:
+FindEndpoint:
+ for _, ep := range k.APIConn.EpIndexReverse(localIP.String()) {
for _, eps := range ep.Subsets {
for _, addr := range eps.Addresses {
if localIP.Equal(net.ParseIP(addr.IP)) {
@@ -43,12 +41,15 @@ func (k *Kubernetes) nsAddr() *dns.A {
return rr
}
- 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)
+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
}
}