Change:
/kind failing-test /priority critical-urgent /sig network /milestone v1.12 /cc
ping
Also failures on
TLS errors connection refused 503 service unavailable especially around metrics and healthz in ways that make me suspect things didn't start correctly. Or perhaps API mismatch? /cc 've looked at some similar failures in the past. Any chance you might give a look over this and ?
in both and here looks like api mismatch?
Test output shows no DNS server can be reached, but logs say coredns pods are running (https://k8s-): cc
The CoreDNS configmap is incorrectly configured and hence the test fails. I'm working on the fix.
/assign
, , Does it make sense to keep that e2e test ?, knowing that this test is specific for "Federation" and that federation has now merged into "multicluster" and removed all e2e tests about "Federation + Serial" (formerly "ci-federation-e2e-gce-serial") : can you say if that use case is still supported in kubernetes v1.12 ?
I can say that Federation v1 has not been exercised since v1.10. I think a good question for the Federation v2 folks is not only whether they still need the tests, but also whether they need the configmap support specific to what Federation v1 used -- I'll defer to
If ya'll decide the use case is no longer valid, please open an issue / remove the test once 1.13 release opens.
tests are failing
/reopen /cc
Reopening this issue. <detailsIn response to : /reopen /cc Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
More failures:
Looks like this is failing since Kube-dns is now enabled.
Since we'd previously discussed this not being a relevant test case, and it seems less appropriate even if it's this coupled to the dns implementation and we've got the kube-dns to coredns transition happening in the next release most likely....Can we just disable/remove the test?
Opened to disable this test.
Thank you!

Discussion:
defer t.c.CoreV1().ConfigMaps(t.ns).Delete(t.name, nil) t.createUtilPodLabel("e2e-dns-configmap") defer t.deleteUtilPod() <ins> originalConfigMapData := t.fetchDNSConfigMapData() defer t.restoreDNSConfigMap(originalConfigMapData) </ins> t.validate() <del> 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"} </del> <ins> 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 } }`} </ins> <del> By("empty -> valid1") t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) t.validate() </del> <ins> 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"} </ins> <del> By("valid1 -> valid2") t.setConfigMap(&v1.ConfigMap{Data: valid2}, valid2m, true) t.validate() </del> <ins> 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"} </ins> <del> By("valid2 -> invalid") t.setConfigMap(&v1.ConfigMap{Data: invalid}, nil, false) t.validate() </del> <ins> By("default -> valid1") t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) t.deleteCoreDNSPods() t.validate() </ins> <del> By("invalid -> valid1") t.setConfigMap(&v1.ConfigMap{Data: valid1}, valid1m, true) t.validate() </del> <ins> By("valid1 -> valid2") t.setConfigMap(&v1.ConfigMap{Data: valid2}, valid2m, true) t.deleteCoreDNSPods() t.validate() </ins> <del> By("valid1 -> deleted") t.deleteConfigMap() t.validate() </del> <ins> By("valid2 -> default") t.setConfigMap(&v1.ConfigMap{Data: defaultConfig}, nil, false) t.deleteCoreDNSPods() t.validate() </ins> <del> By("deleted -> invalid") t.setConfigMap(&v1.ConfigMap{Data: invalid}, nil, false) t.validate() </del> <ins> } 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() } </ins> } func (t *dnsFederationsConfigMapTest) validate() {

predicate := func(actual []string) bool { return len(actual) == 0 } <del> t.checkDNSRecord(federationDNS, predicate, wait.ForeverTestTimeout) </del> <ins> t.checkDNSRecordFrom(federationDNS, predicate, "cluster-dns", wait.ForeverTestTimeout) </ins> } } else { for label := range federations {

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) <ins> if t.name == "coredns" { localDNS = t.utilService.Spec.ClusterIP } </ins> // Check local mapping. Checking a remote mapping requires // creating an arbitrary DNS record which is not possible at the // moment.

} return false } <del> t.checkDNSRecord(federationDNS, predicate, wait.ForeverTestTimeout) </del> <ins> t.checkDNSRecordFrom(federationDNS, predicate, "cluster-dns", wait.ForeverTestTimeout) </ins> } } } func (t *dnsFederationsConfigMapTest) setConfigMap(cm *v1.ConfigMap, fedMap map[string]string, isValid bool) { <ins> t.fedMap = nil </ins> if isValid { t.fedMap = fedMap }