parent
c8fb66f8cc
commit
6ed88fab74
13 changed files with 380 additions and 291 deletions
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue