This commit is contained in:
Chris O'Haver
2018-10-10 15:28:45 -04:00
committed by John Belamaric
parent 8432f14207
commit 974ed086f2
13 changed files with 291 additions and 380 deletions

View File

@@ -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)
}
}