coredns/test/kubernetes_nsexposed_test.go
Miek Gieben d64b684831 plugin/kubernetes: implement HasSynced() ()
* plugin/kubernetes: wait until api is ready

Wait for HasSynced before allowing startup to avoid startup race.

Also do a small refactor in findServices() to pull a check out of the
loop - only needs to be done once.

* sigh
2017-10-20 22:53:17 +01:00

56 lines
1.1 KiB
Go

// +build k8s
package test
import (
"testing"
"github.com/coredns/coredns/plugin/test"
"github.com/miekg/dns"
)
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-2.svc.cluster.local. 303 IN A 10.0.0.120"),
},
},
}
func TestKubernetesNSExposed(t *testing.T) {
corefile :=
`.:0 {
kubernetes cluster.local {
endpoint http://localhost:8080
}
`
server, udp, _, err := CoreDNSServerAndPorts(corefile)
if err != nil {
t.Fatalf("Could not get CoreDNS serving instance: %s", err)
}
defer server.Stop()
for _, tc := range dnsTestCasesAllNSExposed {
c := new(dns.Client)
m := tc.Msg()
res, _, err := c.Exchange(m, udp)
if err != nil {
t.Fatalf("Could not send query: %s", err)
}
test.SortAndCheck(t, res, tc)
}
}