var _ = Describe("DNS", func() { f := NewFramework("dns") It("should provide DNS for the cluster", func() { // TODO: support DNS on vagrant #3580 SkipIfProviderIs("vagrant") systemClient := f.Client.Pods(api.NamespaceSystem) By("Waiting for DNS Service to be Running") dnsPods, err := systemClient.List(dnsServiceLableSelector, fields.Everything()) if err != nil { Failf("Failed to list all dns service pods") } if len(dnsPods.Items) != 1 { Failf("Unexpected number of pods (%d) matches the label selector %v", len(dnsPods.Items), dnsServiceLableSelector.String()) } expectNoError(waitForPodRunningInNamespace(f.Client, dnsPods.Items[0].Name, api.NamespaceSystem)) // All the names we need to be able to resolve. // TODO: Spin up a separate test service and test that dns works for that service. namesToResolve := []string{ "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster.local", "google.com", } // Added due to #8512. This is critical for GCE and GKE deployments. if providerIs("gce", "gke") { namesToResolve = append(namesToResolve, "metadata") }