aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/kubernetes')
-rw-r--r--middleware/kubernetes/handler.go14
-rw-r--r--middleware/kubernetes/kubernetes.go4
2 files changed, 11 insertions, 7 deletions
diff --git a/middleware/kubernetes/handler.go b/middleware/kubernetes/handler.go
index 12277911a..3efe6e722 100644
--- a/middleware/kubernetes/handler.go
+++ b/middleware/kubernetes/handler.go
@@ -26,11 +26,15 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
// otherwise delegate to the next in the pipeline.
zone := middleware.Zones(k.Zones).Matches(state.Name())
if zone == "" {
- // If this is a PTR request, and a the request is in a defined
- // pod/service cidr range, process the request in this middleware,
- // otherwise pass to next middleware.
- if state.Type() != "PTR" || !k.IsRequestInReverseRange(state) {
- return middleware.NextOrFailure(k.Name(), k.Next, ctx, w, r)
+ if state.Type() == "PTR" {
+ // If this is a PTR request, and a the request is in a defined
+ // pod/service cidr range, process the request in this middleware,
+ // otherwise pass to next middleware.
+ if !k.IsRequestInReverseRange(state) {
+ return middleware.NextOrFailure(k.Name(), k.Next, ctx, w, r)
+ }
+ // Set the zone to this specific request.
+ zone = state.Name()
}
}
diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go
index 8c4e08e5d..f5d3d55be 100644
--- a/middleware/kubernetes/kubernetes.go
+++ b/middleware/kubernetes/kubernetes.go
@@ -508,7 +508,7 @@ func (k *Kubernetes) getServiceRecordForIP(ip, name string) []msg.Service {
return nil
}
for _, service := range svcList {
- if !dnsstrings.StringInSlice(service.Namespace, k.Namespaces) {
+ if (len(k.Namespaces) > 0) && !dnsstrings.StringInSlice(service.Namespace, k.Namespaces) {
continue
}
if service.Spec.ClusterIP == ip {
@@ -522,7 +522,7 @@ func (k *Kubernetes) getServiceRecordForIP(ip, name string) []msg.Service {
return nil
}
for _, ep := range epList.Items {
- if !dnsstrings.StringInSlice(ep.ObjectMeta.Namespace, k.Namespaces) {
+ if (len(k.Namespaces) > 0) && !dnsstrings.StringInSlice(ep.ObjectMeta.Namespace, k.Namespaces) {
continue
}
for _, eps := range ep.Subsets {