diff options
Diffstat (limited to 'plugin/kubernetes/handler_test.go')
-rw-r--r-- | plugin/kubernetes/handler_test.go | 62 |
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{ { |