aboutsummaryrefslogtreecommitdiff
path: root/plugin/federation/federation_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/federation/federation_test.go')
-rw-r--r--plugin/federation/federation_test.go38
1 files changed, 37 insertions, 1 deletions
diff --git a/plugin/federation/federation_test.go b/plugin/federation/federation_test.go
index 54a9c3505..864ef2238 100644
--- a/plugin/federation/federation_test.go
+++ b/plugin/federation/federation_test.go
@@ -54,7 +54,7 @@ func TestFederationKubernetes(t *testing.T) {
}
k := kubernetes.New([]string{"cluster.local."})
- k.APIConn = &APIConnFederationTest{}
+ k.APIConn = &APIConnFederationTest{zone: "fd-az", region: "fd-r"}
fed := New()
fed.zones = []string{"cluster.local."}
@@ -79,3 +79,39 @@ func TestFederationKubernetes(t *testing.T) {
test.SortAndCheck(t, resp, tc)
}
}
+
+func TestFederationKubernetesMissingLabels(t *testing.T) {
+ tests := []test.Case{
+ {
+ // service does not exist, do the federation dance.
+ Qname: "svc0.testns.prod.svc.cluster.local.", Qtype: dns.TypeA,
+ Rcode: dns.RcodeSuccess,
+ Answer: []dns.RR{
+ test.CNAME("svc0.testns.prod.svc.cluster.local. 303 IN CNAME svc0.testns.prod.svc.fd-az.fd-r.federal.example."),
+ },
+ },
+ }
+
+ k := kubernetes.New([]string{"cluster.local."})
+ k.APIConn = &APIConnFederationTest{zone: "", region: ""}
+
+ fed := New()
+ fed.zones = []string{"cluster.local."}
+ fed.Federations = k.Federations
+ fed.Next = k
+ fed.f = map[string]string{
+ "prod": "federal.example.",
+ }
+
+ ctx := context.TODO()
+ for _, tc := range tests {
+ m := tc.Msg()
+
+ rec := dnstest.NewRecorder(&test.ResponseWriter{})
+ _, err := fed.ServeDNS(ctx, rec, m)
+ if err == nil {
+ t.Errorf("Expected an error")
+ return
+ }
+ }
+}