From bed22fbb44cb64205e807ec1ba57efbdbb7de905 Mon Sep 17 00:00:00 2001 From: tanjunchen Date: Sun, 22 Mar 2020 23:08:52 +0800 Subject: [PATCH] WaitForPodReady is simply wrapper functions for e2epod package, and they made an invalid dependency to sub e2e framework from the core framework. So we can use e2epod.WaitTimeoutForPodReadyInNamespace to remove invalid dependency. The main purpose of this pr is to handle the framework core package dependency subpackage pod. --- test/e2e/common/container_probe.go | 2 +- test/e2e/framework/framework.go | 5 ----- test/e2e/framework/network/utils.go | 2 +- test/e2e/kubectl/portforward.go | 8 ++++---- test/e2e/network/dns.go | 2 +- test/e2e/network/firewall.go | 3 ++- test/e2e/network/network_policy.go | 12 ++++++------ test/e2e/network/service.go | 4 ++-- test/e2e/node/kubelet.go | 2 +- test/e2e_node/startup_probe_test.go | 3 ++- 10 files changed, 20 insertions(+), 23 deletions(-) diff --git a/test/e2e/common/container_probe.go b/test/e2e/common/container_probe.go index 62c36116cc2..72ebcd5f548 100644 --- a/test/e2e/common/container_probe.go +++ b/test/e2e/common/container_probe.go @@ -63,7 +63,7 @@ var _ = framework.KubeDescribe("Probing container", func() { framework.ConformanceIt("with readiness probe should not be ready before initial delay and never restart [NodeConformance]", func() { containerName := "test-webserver" p := podClient.Create(testWebServerPodSpec(probe.withInitialDelay().build(), nil, containerName, 80)) - f.WaitForPodReady(p.Name) + e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, p.Name, f.Namespace.Name, framework.PodStartTimeout) p, err := podClient.Get(context.TODO(), p.Name, metav1.GetOptions{}) framework.ExpectNoError(err) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 61193a96834..c34d5c30ee5 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -515,11 +515,6 @@ func (f *Framework) WaitForPodTerminated(podName, reason string) error { return e2epod.WaitForPodTerminatedInNamespace(f.ClientSet, podName, reason, f.Namespace.Name) } -// WaitForPodReady waits for the pod to flip to ready in the namespace. -func (f *Framework) WaitForPodReady(podName string) error { - return e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podName, f.Namespace.Name, PodStartTimeout) -} - // ClientConfig an externally accessible method for reading the kube client config. func (f *Framework) ClientConfig() *rest.Config { ret := rest.CopyConfig(f.clientConfig) diff --git a/test/e2e/framework/network/utils.go b/test/e2e/framework/network/utils.go index 63eddd33821..b13911822b1 100644 --- a/test/e2e/framework/network/utils.go +++ b/test/e2e/framework/network/utils.go @@ -664,7 +664,7 @@ func (config *NetworkingTestConfig) createNetProxyPods(podName string, selector // wait that all of them are up runningPods := make([]*v1.Pod, 0, len(nodes)) for _, p := range createdPods { - framework.ExpectNoError(config.f.WaitForPodReady(p.Name)) + framework.ExpectNoError(e2epod.WaitTimeoutForPodReadyInNamespace(config.f.ClientSet, p.Name, config.f.Namespace.Name, framework.PodStartTimeout)) rp, err := config.getPodClient().Get(context.TODO(), p.Name, metav1.GetOptions{}) framework.ExpectNoError(err) runningPods = append(runningPods, rp) diff --git a/test/e2e/kubectl/portforward.go b/test/e2e/kubectl/portforward.go index b33fb62bae4..8c4cd9ffcc2 100644 --- a/test/e2e/kubectl/portforward.go +++ b/test/e2e/kubectl/portforward.go @@ -211,7 +211,7 @@ func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) { if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(context.TODO(), pod, metav1.CreateOptions{}); err != nil { framework.Failf("Couldn't create pod: %v", err) } - if err := f.WaitForPodReady(pod.Name); err != nil { + if err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout); err != nil { framework.Failf("Pod did not start running: %v", err) } @@ -259,7 +259,7 @@ func doTestMustConnectSendNothing(bindAddress string, f *framework.Framework) { if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(context.TODO(), pod, metav1.CreateOptions{}); err != nil { framework.Failf("Couldn't create pod: %v", err) } - if err := f.WaitForPodReady(pod.Name); err != nil { + if err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout); err != nil { framework.Failf("Pod did not start running: %v", err) } @@ -296,7 +296,7 @@ func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework) if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(context.TODO(), pod, metav1.CreateOptions{}); err != nil { framework.Failf("Couldn't create pod: %v", err) } - if err := f.WaitForPodReady(pod.Name); err != nil { + if err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout); err != nil { framework.Failf("Pod did not start running: %v", err) } @@ -366,7 +366,7 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) { if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(context.TODO(), pod, metav1.CreateOptions{}); err != nil { framework.Failf("Couldn't create pod: %v", err) } - if err := f.WaitForPodReady(pod.Name); err != nil { + if err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout); err != nil { framework.Failf("Pod did not start running: %v", err) } diff --git a/test/e2e/network/dns.go b/test/e2e/network/dns.go index 605e0e622f2..3b28d127fcc 100644 --- a/test/e2e/network/dns.go +++ b/test/e2e/network/dns.go @@ -424,7 +424,7 @@ var _ = SIGDescribe("DNS", func() { framework.Failf("ginkgo.Failed to delete pod %s: %v", testAgnhostPod.Name, err) } }() - err = f.WaitForPodReady(testAgnhostPod.Name) + err = e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, testAgnhostPod.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err, "failed to wait for pod %s to be running", testAgnhostPod.Name) runCommand := func(arg string) string { diff --git a/test/e2e/network/firewall.go b/test/e2e/network/firewall.go index 8efe59bd347..d530ea3a2c2 100644 --- a/test/e2e/network/firewall.go +++ b/test/e2e/network/firewall.go @@ -32,6 +32,7 @@ import ( "k8s.io/kubernetes/test/e2e/framework" e2enetwork "k8s.io/kubernetes/test/e2e/framework/network" e2enode "k8s.io/kubernetes/test/e2e/framework/node" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" "k8s.io/kubernetes/test/e2e/framework/providers/gce" e2eservice "k8s.io/kubernetes/test/e2e/framework/service" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" @@ -154,7 +155,7 @@ var _ = SIGDescribe("Firewall rule", func() { pod.Spec.HostNetwork = true _, err := cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) framework.ExpectNoError(err) - framework.ExpectNoError(f.WaitForPodReady(podName)) + framework.ExpectNoError(e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podName, f.Namespace.Name, framework.PodStartTimeout)) framework.Logf("Netexec pod %q in namespace %q running", podName, ns) defer func() { diff --git a/test/e2e/network/network_policy.go b/test/e2e/network/network_policy.go index 9e6bb147e6d..200e2ef60fe 100644 --- a/test/e2e/network/network_policy.go +++ b/test/e2e/network/network_policy.go @@ -60,7 +60,7 @@ var _ = SIGDescribe("NetworkPolicy [LinuxOnly]", func() { podServer, service = createServerPodAndService(f, f.Namespace, "server", []int{80, 81}) ginkgo.By("Waiting for pod ready", func() { - err := f.WaitForPodReady(podServer.Name) + err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podServer.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err) }) @@ -1067,7 +1067,7 @@ var _ = SIGDescribe("NetworkPolicy [LinuxOnly]", func() { defer cleanupServerPodAndService(f, podServerB, serviceB) ginkgo.By("Waiting for pod ready", func() { - err := f.WaitForPodReady(podServerB.Name) + err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podServerB.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err, "Error occurred while waiting for pod type: Ready.") }) @@ -1243,7 +1243,7 @@ var _ = SIGDescribe("NetworkPolicy [LinuxOnly]", func() { // Creating pod-b and service-b podServerB, serviceB = createServerPodAndService(f, f.Namespace, "pod-b", []int{80}) ginkgo.By("Waiting for pod-b to be ready", func() { - err = f.WaitForPodReady(podServerB.Name) + err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podServerB.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err, "Error occurred while waiting for pod type: Ready.") }) defer cleanupServerPodAndService(f, podServerB, serviceB) @@ -1380,7 +1380,7 @@ var _ = SIGDescribe("NetworkPolicy [LinuxOnly]", func() { // Before applying policy, communication should be successful between pod-a and pod-b podA, serviceA = createServerPodAndService(f, f.Namespace, "pod-a", []int{80}) ginkgo.By("Waiting for pod-a to be ready", func() { - err = f.WaitForPodReady(podA.Name) + err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podA.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err, "Error occurred while waiting for pod type: Ready.") }) ginkgo.By("Creating client pod-b which should be able to contact the server pod-a.", func() { @@ -1390,7 +1390,7 @@ var _ = SIGDescribe("NetworkPolicy [LinuxOnly]", func() { podB, serviceB = createServerPodAndService(f, f.Namespace, "pod-b", []int{80}) ginkgo.By("Waiting for pod-b to be ready", func() { - err = f.WaitForPodReady(podB.Name) + err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podB.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err, "Error occurred while waiting for pod type: Ready.") }) ginkgo.By("Creating client pod-a which should be able to contact the server pod-b.", func() { @@ -1472,7 +1472,7 @@ var _ = SIGDescribe("NetworkPolicy [LinuxOnly]", func() { // Creating server pod with label "pod-name": "pod-a" to deny traffic from client pod with label "pod-name": "pod-b" podA, serviceA = createServerPodAndService(f, f.Namespace, "pod-a", []int{80}) ginkgo.By("Waiting for pod-a to be ready", func() { - err = f.WaitForPodReady(podA.Name) + err := e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, podA.Name, f.Namespace.Name, framework.PodStartTimeout) framework.ExpectNoError(err, "Error occurred while waiting for pod type: Ready.") }) diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index ff9fd5fc114..57286e3e23a 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -906,7 +906,7 @@ var _ = SIGDescribe("Services", func() { pod.Labels = jig.Labels _, err = cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) framework.ExpectNoError(err) - framework.ExpectNoError(f.WaitForPodReady(pod.Name)) + framework.ExpectNoError(e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout)) defer func() { framework.Logf("Cleaning up the echo server pod") err := cs.CoreV1().Pods(ns).Delete(context.TODO(), serverPodName, metav1.DeleteOptions{}) @@ -964,7 +964,7 @@ var _ = SIGDescribe("Services", func() { podTemplate.Labels = jig.Labels pod, err := cs.CoreV1().Pods(ns).Create(context.TODO(), podTemplate, metav1.CreateOptions{}) framework.ExpectNoError(err) - framework.ExpectNoError(f.WaitForPodReady(pod.Name)) + framework.ExpectNoError(e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout)) ginkgo.By("waiting for the service to expose an endpoint") err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{serverPodName: {servicePort}}) diff --git a/test/e2e/node/kubelet.go b/test/e2e/node/kubelet.go index e78d2621a69..e91b268aed8 100644 --- a/test/e2e/node/kubelet.go +++ b/test/e2e/node/kubelet.go @@ -172,7 +172,7 @@ func createPodUsingNfs(f *framework.Framework, c clientset.Interface, ns, nfsIP, rtnPod, err := c.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) framework.ExpectNoError(err) - err = f.WaitForPodReady(rtnPod.Name) // running & ready + err = e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, rtnPod.Name, f.Namespace.Name, framework.PodStartTimeout) // running & ready framework.ExpectNoError(err) rtnPod, err = c.CoreV1().Pods(ns).Get(context.TODO(), rtnPod.Name, metav1.GetOptions{}) // return fresh pod diff --git a/test/e2e_node/startup_probe_test.go b/test/e2e_node/startup_probe_test.go index 383b69f7121..3b3db6ca18d 100644 --- a/test/e2e_node/startup_probe_test.go +++ b/test/e2e_node/startup_probe_test.go @@ -27,6 +27,7 @@ import ( kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" @@ -172,7 +173,7 @@ var _ = framework.KubeDescribe("StartupProbe [Serial] [Disruptive]", func() { p, err := podClient.Get(context.TODO(), p.Name, metav1.GetOptions{}) framework.ExpectNoError(err) - f.WaitForPodReady(p.Name) + e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, p.Name, f.Namespace.Name, framework.PodStartTimeout) p, err = podClient.Get(context.TODO(), p.Name, metav1.GetOptions{}) framework.ExpectNoError(err)