ADD ignoreemptyservice option for kubernetes plugin (#1813)

* ADD: ignoreemptyservice option for kubernetes plugin

* Modify documentation and rename option to add space

* UPD: Add unit tests

* UPD: gofmt

* Add unit test for ignore emptyservice

* gofmt

* xfr tests failed

* Rename emptyservice to empty_service
This commit is contained in:
darkweaver87 2018-05-23 14:57:59 +02:00 committed by Chris O'Haver
parent 0f74281a53
commit 003e104fca
7 changed files with 218 additions and 3 deletions

View file

@ -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,
@ -36,6 +43,12 @@ var dnsTestCases = []test.Case{
Answer: []dns.RR{test.SRV("svc1.testns.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.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,
@ -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{
{