aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/kubernetes.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/kubernetes.go')
-rw-r--r--plugin/kubernetes/kubernetes.go25
1 files changed, 15 insertions, 10 deletions
diff --git a/plugin/kubernetes/kubernetes.go b/plugin/kubernetes/kubernetes.go
index 625422935..0168ab52a 100644
--- a/plugin/kubernetes/kubernetes.go
+++ b/plugin/kubernetes/kubernetes.go
@@ -304,7 +304,14 @@ func (k *Kubernetes) findPods(r recordRequest, zone string) (pods []msg.Service,
podname := r.service
zonePath := msg.Path(zone, "coredns")
ip := ""
+
err = errNoItems
+ if wildcard(podname) && !wildcard(namespace) {
+ // If namespace exist, err should be nil, so that we return nodata instead of NXDOMAIN
+ if k.namespace(namespace) {
+ err = nil
+ }
+ }
if strings.Count(podname, "-") == 3 && !strings.Contains(podname, "--") {
ip = strings.Replace(podname, "-", ".", -1)
@@ -336,7 +343,14 @@ func (k *Kubernetes) findPods(r recordRequest, zone string) (pods []msg.Service,
// findServices returns the services matching r from the cache.
func (k *Kubernetes) findServices(r recordRequest, zone string) (services []msg.Service, err error) {
zonePath := msg.Path(zone, "coredns")
- err = errNoItems // Set to errNoItems to signal really nothing found, gets reset when name is matched.
+
+ err = errNoItems
+ if wildcard(r.service) && !wildcard(r.namespace) {
+ // If namespace exist, err should be nil, so that we return nodata instead of NXDOMAIN
+ if k.namespace(namespace) {
+ err = nil
+ }
+ }
var (
endpointsListFunc func() []*api.Endpoints
@@ -449,15 +463,6 @@ func wildcard(s string) bool {
return s == "*" || s == "any"
}
-// namespaceExposed returns true when the namespace is exposed.
-func (k *Kubernetes) namespaceExposed(namespace string) bool {
- _, ok := k.Namespaces[namespace]
- if len(k.Namespaces) > 0 && !ok {
- return false
- }
- return true
-}
-
const (
// Svc is the DNS schema for kubernetes services
Svc = "svc"