Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use framework.ExpectNoError() for e2e/network #77901

Merged
merged 1 commit into from
May 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
44 changes: 23 additions & 21 deletions test/e2e/network/dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import (
e2elog "k8s.io/kubernetes/test/e2e/framework/log"

"github.com/onsi/ginkgo"
"github.com/onsi/gomega"
)

const dnsTestPodHostName = "dns-querier-1"
Expand Down Expand Up @@ -131,7 +130,7 @@ var _ = SIGDescribe("DNS", func() {
}
headlessService := framework.CreateServiceSpec(dnsTestServiceName, "", true, testServiceSelector)
_, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create headless service: %s", dnsTestServiceName)
framework.ExpectNoError(err, "failed to create headless service: %s", dnsTestServiceName)
defer func() {
ginkgo.By("deleting the test headless service")
defer ginkgo.GinkgoRecover()
Expand All @@ -141,7 +140,7 @@ var _ = SIGDescribe("DNS", func() {
regularServiceName := "test-service-2"
regularService := framework.CreateServiceSpec(regularServiceName, "", false, testServiceSelector)
regularService, err = f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(regularService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create regular service: %s", regularServiceName)
framework.ExpectNoError(err, "failed to create regular service: %s", regularServiceName)

defer func() {
ginkgo.By("deleting the test service")
Expand Down Expand Up @@ -179,7 +178,7 @@ var _ = SIGDescribe("DNS", func() {
}
headlessService := framework.CreateServiceSpec(dnsTestServiceName, "", true, testServiceSelector)
_, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create headless service: %s", dnsTestServiceName)
framework.ExpectNoError(err, "failed to create headless service: %s", dnsTestServiceName)
defer func() {
ginkgo.By("deleting the test headless service")
defer ginkgo.GinkgoRecover()
Expand All @@ -189,7 +188,7 @@ var _ = SIGDescribe("DNS", func() {
regularServiceName := "test-service-2"
regularService := framework.CreateServiceSpec(regularServiceName, "", false, testServiceSelector)
regularService, err = f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(regularService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create regular service: %s", regularServiceName)
framework.ExpectNoError(err, "failed to create regular service: %s", regularServiceName)
defer func() {
ginkgo.By("deleting the test service")
defer ginkgo.GinkgoRecover()
Expand Down Expand Up @@ -230,7 +229,7 @@ var _ = SIGDescribe("DNS", func() {
podHostname := "dns-querier-2"
headlessService := framework.CreateServiceSpec(serviceName, "", true, testServiceSelector)
_, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create headless service: %s", serviceName)
framework.ExpectNoError(err, "failed to create headless service: %s", serviceName)

defer func() {
ginkgo.By("deleting the test headless service")
Expand Down Expand Up @@ -265,7 +264,7 @@ var _ = SIGDescribe("DNS", func() {
podHostname := "dns-querier-2"
headlessService := framework.CreateServiceSpec(serviceName, "", true, testServiceSelector)
_, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create headless service: %s", serviceName)
framework.ExpectNoError(err, "failed to create headless service: %s", serviceName)

defer func() {
ginkgo.By("deleting the test headless service")
Expand Down Expand Up @@ -303,7 +302,7 @@ var _ = SIGDescribe("DNS", func() {
serviceName := "dns-test-service-3"
externalNameService := framework.CreateServiceSpec(serviceName, "foo.example.com", false, nil)
_, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(externalNameService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create ExternalName service: %s", serviceName)
framework.ExpectNoError(err, "failed to create ExternalName service: %s", serviceName)

defer func() {
ginkgo.By("deleting the test externalName service")
Expand All @@ -327,7 +326,7 @@ var _ = SIGDescribe("DNS", func() {
_, err = framework.UpdateService(f.ClientSet, f.Namespace.Name, serviceName, func(s *v1.Service) {
s.Spec.ExternalName = "bar.example.com"
})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to change externalName of service: %s", serviceName)
framework.ExpectNoError(err, "failed to change externalName of service: %s", serviceName)
wheezyProbeCmd, wheezyFileName = createTargetedProbeCommand(hostFQDN, "CNAME", "wheezy")
jessieProbeCmd, jessieFileName = createTargetedProbeCommand(hostFQDN, "CNAME", "jessie")
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
Expand All @@ -347,7 +346,7 @@ var _ = SIGDescribe("DNS", func() {
{Port: 80, Name: "http", Protocol: v1.ProtocolTCP},
}
})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to change service type to ClusterIP for service: %s", serviceName)
framework.ExpectNoError(err, "failed to change service type to ClusterIP for service: %s", serviceName)
wheezyProbeCmd, wheezyFileName = createTargetedProbeCommand(hostFQDN, "A", "wheezy")
jessieProbeCmd, jessieFileName = createTargetedProbeCommand(hostFQDN, "A", "jessie")
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
Expand All @@ -358,7 +357,7 @@ var _ = SIGDescribe("DNS", func() {
pod3 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)

svc, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Get(externalNameService.Name, metav1.GetOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get service: %s", externalNameService.Name)
framework.ExpectNoError(err, "failed to get service: %s", externalNameService.Name)

validateTargetedProbeOutput(f, pod3, []string{wheezyFileName, jessieFileName}, svc.Spec.ClusterIP)
})
Expand All @@ -374,15 +373,16 @@ var _ = SIGDescribe("DNS", func() {
Searches: []string{testSearchPath},
}
testAgnhostPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(testAgnhostPod)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create pod: %s", testAgnhostPod.Name)
framework.ExpectNoError(err, "failed to create pod: %s", testAgnhostPod.Name)
framework.Logf("Created pod %v", testAgnhostPod)
defer func() {
framework.Logf("Deleting pod %s...", testAgnhostPod.Name)
if err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(testAgnhostPod.Name, metav1.NewDeleteOptions(0)); err != nil {
framework.Failf("ginkgo.Failed to delete pod %s: %v", testAgnhostPod.Name, err)
}
}()
gomega.Expect(f.WaitForPodRunning(testAgnhostPod.Name)).NotTo(gomega.HaveOccurred(), "failed to wait for pod %s to be running", testAgnhostPod.Name)
err = f.WaitForPodRunning(testAgnhostPod.Name)
framework.ExpectNoError(err, "failed to wait for pod %s to be running", testAgnhostPod.Name)

runCommand := func(arg string) string {
cmd := []string{"/agnhost", arg}
Expand All @@ -394,7 +394,7 @@ var _ = SIGDescribe("DNS", func() {
CaptureStdout: true,
CaptureStderr: true,
})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to run command '/agnhost %s' on pod, stdout: %v, stderr: %v, err: %v", arg, stdout, stderr, err)
framework.ExpectNoError(err, "failed to run command '/agnhost %s' on pod, stdout: %v, stderr: %v, err: %v", arg, stdout, stderr, err)
return stdout
}

Expand Down Expand Up @@ -422,19 +422,20 @@ var _ = SIGDescribe("DNS", func() {
testDNSNameFull: testInjectedIP,
})
testServerPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(testServerPod)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create pod: %s", testServerPod.Name)
framework.ExpectNoError(err, "failed to create pod: %s", testServerPod.Name)
e2elog.Logf("Created pod %v", testServerPod)
defer func() {
e2elog.Logf("Deleting pod %s...", testServerPod.Name)
if err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(testServerPod.Name, metav1.NewDeleteOptions(0)); err != nil {
framework.Failf("ginkgo.Failed to delete pod %s: %v", testServerPod.Name, err)
}
}()
gomega.Expect(f.WaitForPodRunning(testServerPod.Name)).NotTo(gomega.HaveOccurred(), "failed to wait for pod %s to be running", testServerPod.Name)
err = f.WaitForPodRunning(testServerPod.Name)
framework.ExpectNoError(err, "failed to wait for pod %s to be running", testServerPod.Name)

// Retrieve server pod IP.
testServerPod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(testServerPod.Name, metav1.GetOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get pod %v", testServerPod.Name)
framework.ExpectNoError(err, "failed to get pod %v", testServerPod.Name)
testServerIP := testServerPod.Status.PodIP
e2elog.Logf("testServerIP is %s", testServerIP)

Expand All @@ -453,15 +454,16 @@ var _ = SIGDescribe("DNS", func() {
},
}
testUtilsPod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(testUtilsPod)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create pod: %s", testUtilsPod.Name)
framework.ExpectNoError(err, "failed to create pod: %s", testUtilsPod.Name)
e2elog.Logf("Created pod %v", testUtilsPod)
defer func() {
e2elog.Logf("Deleting pod %s...", testUtilsPod.Name)
if err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(testUtilsPod.Name, metav1.NewDeleteOptions(0)); err != nil {
framework.Failf("ginkgo.Failed to delete pod %s: %v", testUtilsPod.Name, err)
}
}()
gomega.Expect(f.WaitForPodRunning(testUtilsPod.Name)).NotTo(gomega.HaveOccurred(), "failed to wait for pod %s to be running", testUtilsPod.Name)
err = f.WaitForPodRunning(testUtilsPod.Name)
framework.ExpectNoError(err, "failed to wait for pod %s to be running", testUtilsPod.Name)

ginkgo.By("Verifying customized DNS option is configured on pod...")
// TODO: Figure out a better way other than checking the actual resolv,conf file.
Expand All @@ -474,7 +476,7 @@ var _ = SIGDescribe("DNS", func() {
CaptureStdout: true,
CaptureStderr: true,
})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to examine resolv,conf file on pod, stdout: %v, stderr: %v, err: %v", stdout, stderr, err)
framework.ExpectNoError(err, "failed to examine resolv,conf file on pod, stdout: %v, stderr: %v, err: %v", stdout, stderr, err)
if !strings.Contains(stdout, "ndots:2") {
framework.Failf("customized DNS options not found in resolv.conf, got: %s", stdout)
}
Expand Down Expand Up @@ -506,7 +508,7 @@ var _ = SIGDescribe("DNS", func() {
return true, nil
}
err = wait.PollImmediate(5*time.Second, 3*time.Minute, digFunc)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to verify customized name server and search path")
framework.ExpectNoError(err, "failed to verify customized name server and search path")

// TODO: Add more test cases for other DNSPolicies.
})
Expand Down
28 changes: 15 additions & 13 deletions test/e2e/network/dns_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ func (t *dnsTestCommon) init() {

namespace := "kube-system"
pods, err := t.f.ClientSet.CoreV1().Pods(namespace).List(options)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to list pods in namespace: %s", namespace)
framework.ExpectNoError(err, "failed to list pods in namespace: %s", namespace)
gomega.Expect(len(pods.Items)).Should(gomega.BeNumerically(">=", 1))

t.dnsPod = &pods.Items[0]
Expand Down Expand Up @@ -157,23 +157,23 @@ func (t *dnsTestCommon) setConfigMap(cm *v1.ConfigMap) {
}.AsSelector().String(),
}
cmList, err := t.c.CoreV1().ConfigMaps(t.ns).List(options)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to list ConfigMaps in namespace: %s", t.ns)
framework.ExpectNoError(err, "failed to list ConfigMaps in namespace: %s", t.ns)

if len(cmList.Items) == 0 {
ginkgo.By(fmt.Sprintf("Creating the ConfigMap (%s:%s) %+v", t.ns, t.name, *cm))
_, err := t.c.CoreV1().ConfigMaps(t.ns).Create(cm)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create ConfigMap (%s:%s) %+v", t.ns, t.name, *cm)
framework.ExpectNoError(err, "failed to create ConfigMap (%s:%s) %+v", t.ns, t.name, *cm)
} else {
ginkgo.By(fmt.Sprintf("Updating the ConfigMap (%s:%s) to %+v", t.ns, t.name, *cm))
_, err := t.c.CoreV1().ConfigMaps(t.ns).Update(cm)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to update ConfigMap (%s:%s) to %+v", t.ns, t.name, *cm)
framework.ExpectNoError(err, "failed to update ConfigMap (%s:%s) to %+v", t.ns, t.name, *cm)
}
}

func (t *dnsTestCommon) fetchDNSConfigMapData() map[string]string {
if t.name == "coredns" {
pcm, err := t.c.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(t.name, metav1.GetOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get DNS ConfigMap: %s", t.name)
framework.ExpectNoError(err, "failed to get DNS ConfigMap: %s", t.name)
return pcm.Data
}
return nil
Expand All @@ -192,7 +192,7 @@ func (t *dnsTestCommon) deleteConfigMap() {
ginkgo.By(fmt.Sprintf("Deleting the ConfigMap (%s:%s)", t.ns, t.name))
t.cm = nil
err := t.c.CoreV1().ConfigMaps(t.ns).Delete(t.name, nil)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete config map: %s", t.name)
framework.ExpectNoError(err, "failed to delete config map: %s", t.name)
}

func (t *dnsTestCommon) createUtilPodLabel(baseName string) {
Expand Down Expand Up @@ -224,9 +224,10 @@ func (t *dnsTestCommon) createUtilPodLabel(baseName string) {

var err error
t.utilPod, err = t.c.CoreV1().Pods(t.f.Namespace.Name).Create(t.utilPod)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create pod: %v", t.utilPod)
framework.ExpectNoError(err, "failed to create pod: %v", t.utilPod)
e2elog.Logf("Created pod %v", t.utilPod)
gomega.Expect(t.f.WaitForPodRunning(t.utilPod.Name)).NotTo(gomega.HaveOccurred(), "pod failed to start running: %v", t.utilPod)
err = t.f.WaitForPodRunning(t.utilPod.Name)
framework.ExpectNoError(err, "pod failed to start running: %v", t.utilPod)

t.utilService = &v1.Service{
TypeMeta: metav1.TypeMeta{
Expand All @@ -249,7 +250,7 @@ func (t *dnsTestCommon) createUtilPodLabel(baseName string) {
}

t.utilService, err = t.c.CoreV1().Services(t.f.Namespace.Name).Create(t.utilService)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s/%s", t.f.Namespace.Name, t.utilService.ObjectMeta.Name)
framework.ExpectNoError(err, "failed to create service: %s/%s", t.f.Namespace.Name, t.utilService.ObjectMeta.Name)
e2elog.Logf("Created service %v", t.utilService)
}

Expand All @@ -272,7 +273,7 @@ func (t *dnsTestCommon) deleteCoreDNSPods() {

for _, pod := range pods.Items {
err = podClient.Delete(pod.Name, metav1.NewDeleteOptions(0))
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s", pod.Name)
framework.ExpectNoError(err, "failed to delete pod: %s", pod.Name)
}
}

Expand Down Expand Up @@ -315,13 +316,14 @@ func (t *dnsTestCommon) createDNSPodFromObj(pod *v1.Pod) {

var err error
t.dnsServerPod, err = t.c.CoreV1().Pods(t.f.Namespace.Name).Create(t.dnsServerPod)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create pod: %v", t.dnsServerPod)
framework.ExpectNoError(err, "failed to create pod: %v", t.dnsServerPod)
e2elog.Logf("Created pod %v", t.dnsServerPod)
gomega.Expect(t.f.WaitForPodRunning(t.dnsServerPod.Name)).NotTo(gomega.HaveOccurred(), "pod failed to start running: %v", t.dnsServerPod)
err = t.f.WaitForPodRunning(t.dnsServerPod.Name)
framework.ExpectNoError(err, "pod failed to start running: %v", t.dnsServerPod)

t.dnsServerPod, err = t.c.CoreV1().Pods(t.f.Namespace.Name).Get(
t.dnsServerPod.Name, metav1.GetOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get pod: %s", t.dnsServerPod.Name)
framework.ExpectNoError(err, "failed to get pod: %s", t.dnsServerPod.Name)
}

func (t *dnsTestCommon) createDNSServer(aRecords map[string]string) {
Expand Down
17 changes: 8 additions & 9 deletions test/e2e/network/example_cluster_dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (
e2elog "k8s.io/kubernetes/test/e2e/framework/log"

"github.com/onsi/ginkgo"
"github.com/onsi/gomega"
)

const (
Expand Down Expand Up @@ -84,7 +83,7 @@ var _ = SIGDescribe("ClusterDns [Feature:Example]", func() {
var err error
namespaceName := fmt.Sprintf("dnsexample%d", i)
namespaces[i], err = f.CreateNamespace(namespaceName, nil)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create namespace: %s", namespaceName)
framework.ExpectNoError(err, "failed to create namespace: %s", namespaceName)
}

for _, ns := range namespaces {
Expand All @@ -106,13 +105,13 @@ var _ = SIGDescribe("ClusterDns [Feature:Example]", func() {
label := labels.SelectorFromSet(labels.Set(map[string]string{"name": backendRcName}))
options := metav1.ListOptions{LabelSelector: label.String()}
pods, err := c.CoreV1().Pods(ns.Name).List(options)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to list pods in namespace: %s", ns.Name)
framework.ExpectNoError(err, "failed to list pods in namespace: %s", ns.Name)
err = framework.PodsResponding(c, ns.Name, backendPodName, false, pods)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "waiting for all pods to respond")
framework.ExpectNoError(err, "waiting for all pods to respond")
e2elog.Logf("found %d backend pods responding in namespace %s", len(pods.Items), ns.Name)

err = framework.ServiceResponding(c, ns.Name, backendSvcName)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "waiting for the service to respond")
framework.ExpectNoError(err, "waiting for the service to respond")
}

// Now another tricky part:
Expand All @@ -134,7 +133,7 @@ var _ = SIGDescribe("ClusterDns [Feature:Example]", func() {

queryDNS := fmt.Sprintf(queryDNSPythonTemplate, backendSvcName+"."+namespaces[0].Name)
_, err = framework.LookForStringInPodExec(namespaces[0].Name, podName, []string{"python", "-c", queryDNS}, "ok", dnsReadyTimeout)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "waiting for output from pod exec")
framework.ExpectNoError(err, "waiting for output from pod exec")

updatedPodYaml := prepareResourceWithReplacedString(frontendPodYaml, fmt.Sprintf("dns-backend.development.svc.%s", framework.TestContext.ClusterDNSDomain), fmt.Sprintf("dns-backend.%s.svc.%s", namespaces[0].Name, framework.TestContext.ClusterDNSDomain))

Expand All @@ -153,7 +152,7 @@ var _ = SIGDescribe("ClusterDns [Feature:Example]", func() {
// wait for pods to print their result
for _, ns := range namespaces {
_, err := framework.LookForStringInLog(ns.Name, frontendPodName, frontendPodContainerName, podOutput, framework.PodStartTimeout)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "pod %s failed to print result in logs", frontendPodName)
framework.ExpectNoError(err, "pod %s failed to print result in logs", frontendPodName)
}
})
})
Expand All @@ -165,10 +164,10 @@ func getNsCmdFlag(ns *v1.Namespace) string {
// pass enough context with the 'old' parameter so that it replaces what your really intended.
func prepareResourceWithReplacedString(inputFile, old, new string) string {
f, err := os.Open(inputFile)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to open file: %s", inputFile)
framework.ExpectNoError(err, "failed to open file: %s", inputFile)
defer f.Close()
data, err := ioutil.ReadAll(f)
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to read from file: %s", inputFile)
framework.ExpectNoError(err, "failed to read from file: %s", inputFile)
podYaml := strings.Replace(string(data), old, new, 1)
return podYaml
}