aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--middleware/kubernetes/kubernetes.go4
-rw-r--r--test/kubernetes_test.go47
2 files changed, 49 insertions, 2 deletions
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 {
diff --git a/test/kubernetes_test.go b/test/kubernetes_test.go
index 530051f0a..fd38c2e03 100644
--- a/test/kubernetes_test.go
+++ b/test/kubernetes_test.go
@@ -315,6 +315,42 @@ var dnsTestCasesPartialCidrReverseZone = []test.Case{
},
}
+var dnsTestCasesAllNSExposed = []test.Case{
+ {
+ Qname: "svc-1-a.test-1.svc.cluster.local.", Qtype: dns.TypeA,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.A("svc-1-a.test-1.svc.cluster.local. 303 IN A 10.0.0.100"),
+ },
+ },
+ {
+ Qname: "svc-c.test-2.svc.cluster.local.", Qtype: dns.TypeA,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.A("svc-c.test-1.svc.cluster.local. 303 IN A 10.0.0.120"),
+ },
+ },
+ {
+ Qname: "123.0.0.10.in-addr.arpa.", Qtype: dns.TypePTR,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{},
+ },
+ {
+ Qname: "100.0.0.10.in-addr.arpa.", Qtype: dns.TypePTR,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.PTR("100.0.0.10.in-addr.arpa. 303 IN PTR svc-1-a.test-1.svc.cluster.local."),
+ },
+ },
+ {
+ Qname: "120.0.0.10.in-addr.arpa.", Qtype: dns.TypePTR,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.PTR("120.0.0.10.in-addr.arpa. 303 IN PTR svc-c.test-2.svc.cluster.local."),
+ },
+ },
+}
+
func createTestServer(t *testing.T, corefile string) (*caddy.Instance, string) {
server, err := CoreDNSServer(corefile)
if err != nil {
@@ -424,3 +460,14 @@ func TestKubernetesIntegrationPartialCidrReverseZone(t *testing.T) {
`
doIntegrationTests(t, corefile, dnsTestCasesPartialCidrReverseZone)
}
+
+func TestKubernetesIntegrationAllNSExposed(t *testing.T) {
+ corefile :=
+ `.:0 {
+ kubernetes cluster.local {
+ endpoint http://localhost:8080
+ cidrs 10.0.0.0/24
+ }
+`
+ doIntegrationTests(t, corefile, dnsTestCasesAllNSExposed)
+}