aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/handler_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/handler_test.go')
-rw-r--r--plugin/kubernetes/handler_test.go62
1 files changed, 62 insertions, 0 deletions
diff --git a/plugin/kubernetes/handler_test.go b/plugin/kubernetes/handler_test.go
index d3d92a548..388903137 100644
--- a/plugin/kubernetes/handler_test.go
+++ b/plugin/kubernetes/handler_test.go
@@ -22,6 +22,13 @@ var dnsTestCases = []test.Case{
test.A("svc1.testns.svc.cluster.local. 5 IN A 10.0.0.1"),
},
},
+ {
+ Qname: "svcempty.testns.svc.cluster.local.", Qtype: dns.TypeA,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.A("svcempty.testns.svc.cluster.local. 5 IN A 10.0.0.1"),
+ },
+ },
// A Service (wildcard)
{
Qname: "svc1.*.svc.cluster.local.", Qtype: dns.TypeA,
@@ -37,6 +44,12 @@ var dnsTestCases = []test.Case{
Extra: []dns.RR{test.A("svc1.testns.svc.cluster.local. 5 IN A 10.0.0.1")},
},
{
+ Qname: "svcempty.testns.svc.cluster.local.", Qtype: dns.TypeSRV,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{test.SRV("svcempty.testns.svc.cluster.local. 5 IN SRV 0 100 80 svcempty.testns.svc.cluster.local.")},
+ Extra: []dns.RR{test.A("svcempty.testns.svc.cluster.local. 5 IN A 10.0.0.1")},
+ },
+ {
Qname: "svc6.testns.svc.cluster.local.", Qtype: dns.TypeSRV,
Rcode: dns.RcodeSuccess,
Answer: []dns.RR{test.SRV("svc6.testns.svc.cluster.local. 5 IN SRV 0 100 80 svc6.testns.svc.cluster.local.")},
@@ -49,6 +62,12 @@ var dnsTestCases = []test.Case{
Answer: []dns.RR{test.SRV("svc1.*.svc.cluster.local. 5 IN SRV 0 100 80 svc1.testns.svc.cluster.local.")},
Extra: []dns.RR{test.A("svc1.testns.svc.cluster.local. 5 IN A 10.0.0.1")},
},
+ {
+ Qname: "svcempty.*.svc.cluster.local.", Qtype: dns.TypeSRV,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{test.SRV("svcempty.*.svc.cluster.local. 5 IN SRV 0 100 80 svcempty.testns.svc.cluster.local.")},
+ Extra: []dns.RR{test.A("svcempty.testns.svc.cluster.local. 5 IN A 10.0.0.1")},
+ },
// SRV Service (wildcards)
{
Qname: "*.any.svc1.*.svc.cluster.local.", Qtype: dns.TypeSRV,
@@ -83,6 +102,16 @@ var dnsTestCases = []test.Case{
test.A("svc1.testns.svc.cluster.local. 5 IN A 10.0.0.1"),
},
},
+ {
+ Qname: "_http._tcp.svcempty.testns.svc.cluster.local.", Qtype: dns.TypeSRV,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.SRV("_http._tcp.svcempty.testns.svc.cluster.local. 5 IN SRV 0 100 80 svcempty.testns.svc.cluster.local."),
+ },
+ Extra: []dns.RR{
+ test.A("svcempty.testns.svc.cluster.local. 5 IN A 10.0.0.1"),
+ },
+ },
// A Service (Headless)
{
Qname: "hdls1.testns.svc.cluster.local.", Qtype: dns.TypeA,
@@ -332,6 +361,21 @@ var svcIndex = map[string][]*api.Service{
}},
},
}},
+ "svcempty.testns": {{
+ ObjectMeta: meta.ObjectMeta{
+ Name: "svcempty",
+ Namespace: "testns",
+ },
+ Spec: api.ServiceSpec{
+ Type: api.ServiceTypeClusterIP,
+ ClusterIP: "10.0.0.1",
+ Ports: []api.ServicePort{{
+ Name: "http",
+ Protocol: "tcp",
+ Port: 80,
+ }},
+ },
+ }},
"svc6.testns": {{
ObjectMeta: meta.ObjectMeta{
Name: "svc6",
@@ -410,6 +454,24 @@ var epsIndex = map[string][]*api.Endpoints{
Namespace: "testns",
},
}},
+ "svcempty.testns": {{
+ Subsets: []api.EndpointSubset{
+ {
+ Addresses: nil,
+ Ports: []api.EndpointPort{
+ {
+ Port: 80,
+ Protocol: "tcp",
+ Name: "http",
+ },
+ },
+ },
+ },
+ ObjectMeta: meta.ObjectMeta{
+ Name: "svcempty",
+ Namespace: "testns",
+ },
+ }},
"hdls1.testns": {{
Subsets: []api.EndpointSubset{
{