From e2d435f213a08befa552246401949f06be3ce6af Mon Sep 17 00:00:00 2001 From: Sandeep Rajan Date: Fri, 7 Sep 2018 16:08:48 -0400 Subject: [PATCH] add coredns configmap to federation test --- test/e2e/network/dns_configmap.go | 115 +++++++++++++++++++++++------- 1 file changed, 89 insertions(+), 26 deletions(-) diff --git a/test/e2e/network/dns_configmap.go b/test/e2e/network/dns_configmap.go index 549053648dd..f730d54e8ee 100644 --- a/test/e2e/network/dns_configmap.go +++ b/test/e2e/network/dns_configmap.go @@ -57,39 +57,97 @@ func (t *dnsFederationsConfigMapTest) run() { defer t.c.CoreV1().ConfigMaps(t.ns).Delete(t.name, nil) t.createUtilPodLabel("e2e-dns-configmap") defer t.deleteUtilPod() + originalConfigMapData := t.fetchDNSConfigMapData() + defer t.restoreDNSConfigMap(originalConfigMapData) t.validate() - t.labels = []string{"abc", "ghi"} - valid1 := map[string]string{"federations": t.labels[0] + "=def"} - valid1m := map[string]string{t.labels[0]: "def"} - valid2 := map[string]string{"federations": t.labels[1] + "=xyz"} - valid2m := map[string]string{t.labels[1]: "xyz"} - invalid := map[string]string{"federations": "invalid.map=xyz"} + if t.name == "coredns" { + t.labels = []string{"abc", "ghi"} + defaultConfig := map[string]string{ + "Corefile": `.:53 { + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + upstream + fallthrough in-addr.arpa ip6.arpa + } + }`} - By("empty -> valid1") - t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) - t.validate() + valid1 := map[string]string{ + "Corefile": `.:53 { + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + upstream + fallthrough in-addr.arpa ip6.arpa + } + federation cluster.local { + abc def.com + } + proxy . /etc/resolv.conf + }`} + valid1m := map[string]string{t.labels[0]: "def.com"} - By("valid1 -> valid2") - t.setConfigMap(&v1.ConfigMap{Data: valid2}, valid2m, true) - t.validate() + valid2 := map[string]string{ + "Corefile": `:53 { + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + upstream + fallthrough in-addr.arpa ip6.arpa + } + federation cluster.local { + ghi xyz.com + } + proxy . /etc/resolv.conf + }`} + valid2m := map[string]string{t.labels[1]: "xyz.com"} - By("valid2 -> invalid") - t.setConfigMap(&v1.ConfigMap{Data: invalid}, nil, false) - t.validate() + By("default -> valid1") + t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) + t.deleteCoreDNSPods() + t.validate() - By("invalid -> valid1") - t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) - t.validate() + By("valid1 -> valid2") + t.setConfigMap(&v1.ConfigMap{Data: valid2}, valid2m, true) + t.deleteCoreDNSPods() + t.validate() - By("valid1 -> deleted") - t.deleteConfigMap() - t.validate() + By("valid2 -> default") + t.setConfigMap(&v1.ConfigMap{Data: defaultConfig}, nil, false) + t.deleteCoreDNSPods() + t.validate() - By("deleted -> invalid") - t.setConfigMap(&v1.ConfigMap{Data: invalid}, nil, false) - t.validate() + } else { + t.labels = []string{"abc", "ghi"} + valid1 := map[string]string{"federations": t.labels[0] + "=def"} + valid1m := map[string]string{t.labels[0]: "def"} + valid2 := map[string]string{"federations": t.labels[1] + "=xyz"} + valid2m := map[string]string{t.labels[1]: "xyz"} + invalid := map[string]string{"federations": "invalid.map=xyz"} + + By("empty -> valid1") + t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) + t.validate() + + By("valid1 -> valid2") + t.setConfigMap(&v1.ConfigMap{Data: valid2}, valid2m, true) + t.validate() + + By("valid2 -> invalid") + t.setConfigMap(&v1.ConfigMap{Data: invalid}, nil, false) + t.validate() + + By("invalid -> valid1") + t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) + t.validate() + + By("valid1 -> deleted") + t.deleteConfigMap() + t.validate() + + By("deleted -> invalid") + t.setConfigMap(&v1.ConfigMap{Data: invalid}, nil, false) + t.validate() + } } func (t *dnsFederationsConfigMapTest) validate() { @@ -104,7 +162,7 @@ func (t *dnsFederationsConfigMapTest) validate() { predicate := func(actual []string) bool { return len(actual) == 0 } - t.checkDNSRecord(federationDNS, predicate, wait.ForeverTestTimeout) + t.checkDNSRecordFrom(federationDNS, predicate, "cluster-dns", wait.ForeverTestTimeout) } } else { for label := range federations { @@ -112,6 +170,9 @@ func (t *dnsFederationsConfigMapTest) validate() { t.utilService.ObjectMeta.Name, t.f.Namespace.Name, label) var localDNS = fmt.Sprintf("%s.%s.svc.cluster.local.", t.utilService.ObjectMeta.Name, t.f.Namespace.Name) + if t.name == "coredns" { + localDNS = t.utilService.Spec.ClusterIP + } // Check local mapping. Checking a remote mapping requires // creating an arbitrary DNS record which is not possible at the // moment. @@ -124,12 +185,14 @@ func (t *dnsFederationsConfigMapTest) validate() { } return false } - t.checkDNSRecord(federationDNS, predicate, wait.ForeverTestTimeout) + t.checkDNSRecordFrom(federationDNS, predicate, "cluster-dns", wait.ForeverTestTimeout) } } } func (t *dnsFederationsConfigMapTest) setConfigMap(cm *v1.ConfigMap, fedMap map[string]string, isValid bool) { + t.fedMap = nil + if isValid { t.fedMap = fedMap }