aboutsummaryrefslogtreecommitdiff
path: root/middleware
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-08-19 07:18:35 +0100
committerGravatar GitHub <noreply@github.com> 2017-08-19 07:18:35 +0100
commit627687b11fe56d3235a2f6a5055f1c6749752096 (patch)
treee07143ff472de3243cf48fc365ab0c7d821c10ee /middleware
parentf96cf27193032120ba727316c4057dffed0cbe48 (diff)
downloadcoredns-627687b11fe56d3235a2f6a5055f1c6749752096.tar.gz
coredns-627687b11fe56d3235a2f6a5055f1c6749752096.tar.zst
coredns-627687b11fe56d3235a2f6a5055f1c6749752096.zip
mw/kubernetes: remove zone from parseRequest (#938)
* mw/kubernetes: remove zone from parseRequest State has the zone info as well, so don't need to have it in parseRequest anymore. * Fix up tests * improve test coverage
Diffstat (limited to 'middleware')
-rw-r--r--middleware/kubernetes/kubernetes.go6
-rw-r--r--middleware/kubernetes/parse.go4
-rw-r--r--middleware/kubernetes/parse_test.go12
3 files changed, 12 insertions, 10 deletions
diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go
index 419017bad..0ed71b6c0 100644
--- a/middleware/kubernetes/kubernetes.go
+++ b/middleware/kubernetes/kubernetes.go
@@ -315,7 +315,7 @@ func (k *Kubernetes) Entries(state request.Request) ([]msg.Service, error) {
return nil, errNoItems
}
- records := k.getRecordsForK8sItems(services, pods, r)
+ records := k.getRecordsForK8sItems(services, pods, state.Zone)
return records, nil
}
@@ -332,8 +332,8 @@ func endpointHostname(addr api.EndpointAddress) string {
return ""
}
-func (k *Kubernetes) getRecordsForK8sItems(services []kService, pods []kPod, r recordRequest) (records []msg.Service) {
- zonePath := msg.Path(r.zone, "coredns")
+func (k *Kubernetes) getRecordsForK8sItems(services []kService, pods []kPod, zone string) (records []msg.Service) {
+ zonePath := msg.Path(zone, "coredns")
for _, svc := range services {
if svc.addr == api.ClusterIPNone || len(svc.endpoints) > 0 {
diff --git a/middleware/kubernetes/parse.go b/middleware/kubernetes/parse.go
index c7d614ec1..700dc654a 100644
--- a/middleware/kubernetes/parse.go
+++ b/middleware/kubernetes/parse.go
@@ -20,7 +20,6 @@ type recordRequest struct {
// A each name can be for a pod or a service, here we track what we've seen. This value is true for
// pods and false for services. If we ever need to extend this well use a typed value.
podOrSvc string
- zone string
}
// parseRequest parses the qname to find all the elements we need for querying k8s.
@@ -34,8 +33,6 @@ func (k *Kubernetes) parseRequest(state request.Request) (r recordRequest, err e
base, _ := dnsutil.TrimZone(state.Name(), state.Zone)
segs := dns.SplitDomainName(base)
- r.zone = state.Zone
-
offset := 0
if state.QType() == dns.TypeSRV {
// The kubernetes peer-finder expects queries with empty port and service to resolve
@@ -101,6 +98,5 @@ func (r recordRequest) String() string {
s += "." + r.service
s += "." + r.namespace
s += "." + r.podOrSvc
- s += "." + r.zone
return s
}
diff --git a/middleware/kubernetes/parse_test.go b/middleware/kubernetes/parse_test.go
index 0a3d224e4..daf884b30 100644
--- a/middleware/kubernetes/parse_test.go
+++ b/middleware/kubernetes/parse_test.go
@@ -19,17 +19,23 @@ func TestParseRequest(t *testing.T) {
{
// valid SRV request
"_http._tcp.webs.mynamespace.svc.inter.webs.test.", dns.TypeSRV,
- "http.tcp..webs.mynamespace.svc.intern.webs.tests.",
+ "http.tcp..webs.mynamespace.svc",
},
{
// wildcard acceptance
"*.any.*.any.svc.inter.webs.test.", dns.TypeSRV,
- "*.any..*.any.svc.intern.webs.tests.",
+ "*.any..*.any.svc",
},
{
// A request of endpoint
"1-2-3-4.webs.mynamespace.svc.inter.webs.test.", dns.TypeA,
- "..1-2-3-4.webs.mynamespace.svc.intern.webs.tests.",
+ "..1-2-3-4.webs.mynamespace.svc",
+ },
+ {
+
+ // 3 segments
+ "webs.mynamespace.svc.inter.webs.test.", dns.TypeSRV,
+ "*...webs.mynamespace.svc",
},
}
for i, tc := range tests {