aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes/kubernetes_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/kubernetes/kubernetes_test.go')
-rw-r--r--middleware/kubernetes/kubernetes_test.go242
1 files changed, 0 insertions, 242 deletions
diff --git a/middleware/kubernetes/kubernetes_test.go b/middleware/kubernetes/kubernetes_test.go
deleted file mode 100644
index 573a517b1..000000000
--- a/middleware/kubernetes/kubernetes_test.go
+++ /dev/null
@@ -1,242 +0,0 @@
-package kubernetes
-
-import (
- "testing"
-
- "github.com/coredns/coredns/middleware"
- "github.com/coredns/coredns/request"
-
- "github.com/miekg/dns"
- "k8s.io/client-go/1.5/pkg/api"
-)
-
-func TestWildcard(t *testing.T) {
- var tests = []struct {
- s string
- expected bool
- }{
- {"mynamespace", false},
- {"*", true},
- {"any", true},
- {"my*space", false},
- {"*space", false},
- {"myname*", false},
- }
-
- for _, te := range tests {
- got := wildcard(te.s)
- if got != te.expected {
- t.Errorf("Expected Wildcard result '%v' for example '%v', got '%v'.", te.expected, te.s, got)
- }
- }
-}
-
-func TestEndpointHostname(t *testing.T) {
- var tests = []struct {
- ip string
- hostname string
- expected string
- }{
- {"10.11.12.13", "", "10-11-12-13"},
- {"10.11.12.13", "epname", "epname"},
- }
- for _, test := range tests {
- result := endpointHostname(api.EndpointAddress{IP: test.ip, Hostname: test.hostname})
- if result != test.expected {
- t.Errorf("Expected endpoint name for (ip:%v hostname:%v) to be '%v', but got '%v'", test.ip, test.hostname, test.expected, result)
- }
- }
-}
-
-type APIConnServiceTest struct{}
-
-func (APIConnServiceTest) Run() { return }
-func (APIConnServiceTest) Stop() error { return nil }
-func (APIConnServiceTest) PodIndex(string) []interface{} { return nil }
-
-func (APIConnServiceTest) ServiceList() []*api.Service {
- svcs := []*api.Service{
- {
- ObjectMeta: api.ObjectMeta{
- Name: "svc1",
- Namespace: "testns",
- },
- Spec: api.ServiceSpec{
- ClusterIP: "10.0.0.1",
- Ports: []api.ServicePort{{
- Name: "http",
- Protocol: "tcp",
- Port: 80,
- }},
- },
- },
- {
- ObjectMeta: api.ObjectMeta{
- Name: "hdls1",
- Namespace: "testns",
- },
- Spec: api.ServiceSpec{
- ClusterIP: api.ClusterIPNone,
- },
- },
- {
- ObjectMeta: api.ObjectMeta{
- Name: "external",
- Namespace: "testns",
- },
- Spec: api.ServiceSpec{
- ExternalName: "coredns.io",
- Ports: []api.ServicePort{{
- Name: "http",
- Protocol: "tcp",
- Port: 80,
- }},
- },
- },
- }
- return svcs
-}
-
-func (APIConnServiceTest) EndpointsList() api.EndpointsList {
- n := "test.node.foo.bar"
-
- return api.EndpointsList{
- Items: []api.Endpoints{
- {
- Subsets: []api.EndpointSubset{
- {
- Addresses: []api.EndpointAddress{
- {
- IP: "172.0.0.1",
- Hostname: "ep1a",
- },
- },
- Ports: []api.EndpointPort{
- {
- Port: 80,
- Protocol: "tcp",
- Name: "http",
- },
- },
- },
- },
- ObjectMeta: api.ObjectMeta{
- Name: "svc1",
- Namespace: "testns",
- },
- },
- {
- Subsets: []api.EndpointSubset{
- {
- Addresses: []api.EndpointAddress{
- {
- IP: "172.0.0.2",
- },
- },
- Ports: []api.EndpointPort{
- {
- Port: 80,
- Protocol: "tcp",
- Name: "http",
- },
- },
- },
- },
- ObjectMeta: api.ObjectMeta{
- Name: "hdls1",
- Namespace: "testns",
- },
- },
- {
- Subsets: []api.EndpointSubset{
- {
- Addresses: []api.EndpointAddress{
- {
- IP: "172.0.0.3",
- },
- },
- Ports: []api.EndpointPort{
- {
- Port: 80,
- Protocol: "tcp",
- Name: "http",
- },
- },
- },
- },
- ObjectMeta: api.ObjectMeta{
- Name: "hdls1",
- Namespace: "testns",
- },
- },
- {
- Subsets: []api.EndpointSubset{
- {
- Addresses: []api.EndpointAddress{
- {
- IP: "10.9.8.7",
- NodeName: &n,
- },
- },
- },
- },
- },
- },
- }
-}
-
-func (APIConnServiceTest) GetNodeByName(name string) (api.Node, error) {
- return api.Node{
- ObjectMeta: api.ObjectMeta{
- Name: "test.node.foo.bar",
- },
- }, nil
-}
-
-func TestServices(t *testing.T) {
-
- k := New([]string{"interwebs.test."})
- k.APIConn = &APIConnServiceTest{}
-
- type svcAns struct {
- host string
- key string
- }
- type svcTest struct {
- qname string
- qtype uint16
- answer svcAns
- }
- tests := []svcTest{
- // Cluster IP Services
- {qname: "svc1.testns.svc.interwebs.test.", qtype: dns.TypeA, answer: svcAns{host: "10.0.0.1", key: "/coredns/test/interwebs/svc/testns/svc1"}},
- {qname: "_http._tcp.svc1.testns.svc.interwebs.test.", qtype: dns.TypeSRV, answer: svcAns{host: "10.0.0.1", key: "/coredns/test/interwebs/svc/testns/svc1"}},
- {qname: "ep1a.svc1.testns.svc.interwebs.test.", qtype: dns.TypeA, answer: svcAns{host: "172.0.0.1", key: "/coredns/test/interwebs/svc/testns/svc1/ep1a"}},
-
- // External Services
- {qname: "external.testns.svc.interwebs.test.", qtype: dns.TypeCNAME, answer: svcAns{host: "coredns.io", key: "/coredns/test/interwebs/svc/testns/external"}},
- }
-
- for i, test := range tests {
- state := request.Request{
- Req: &dns.Msg{Question: []dns.Question{{Name: test.qname, Qtype: test.qtype}}},
- Zone: "interwebs.test.", // must match from k.Zones[0]
- }
- svcs, e := k.Services(state, false, middleware.Options{})
- if e != nil {
- t.Errorf("Test %d: got error '%v'", i, e)
- continue
- }
- if len(svcs) != 1 {
- t.Errorf("Test %d, expected expected 1 answer, got %v", i, len(svcs))
- continue
- }
-
- if test.answer.host != svcs[0].Host {
- t.Errorf("Test %d, expected host '%v', got '%v'", i, test.answer.host, svcs[0].Host)
- }
- if test.answer.key != svcs[0].Key {
- t.Errorf("Test %d, expected key '%v', got '%v'", i, test.answer.key, svcs[0].Key)
- }
- }
-}