diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 66c2ae6e454..ee5cd046287 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -2623,7 +2623,7 @@ func GetReadySchedulableNodesOrDie(c *client.Client) (nodes *api.NodeList) { } func WaitForAllNodesSchedulable(c *client.Client) error { - return wait.PollImmediate(30*time.Second, 2*time.Hour, func() (bool, error) { + return wait.PollImmediate(30*time.Second, 4*time.Hour, func() (bool, error) { opts := api.ListOptions{ ResourceVersion: "0", FieldSelector: fields.Set{"spec.unschedulable": "false"}.AsSelector(), @@ -2634,11 +2634,16 @@ func WaitForAllNodesSchedulable(c *client.Client) error { // Ignore the error here - it will be retried. return false, nil } + schedulable := 0 for _, node := range nodes.Items { - if !isNodeSchedulable(&node) { - return false, nil + if isNodeSchedulable(&node) { + schedulable++ } } + if schedulable != len(nodes.Items) { + Logf("%d/%d nodes schedulable (polling after 30s)", schedulable, len(nodes.Items)) + return false, nil + } return true, nil }) } diff --git a/test/e2e/kubeproxy.go b/test/e2e/kubeproxy.go index 6680efcff5a..258d72e6f03 100644 --- a/test/e2e/kubeproxy.go +++ b/test/e2e/kubeproxy.go @@ -463,6 +463,7 @@ func (config *KubeProxyTestConfig) setup() { } By("Getting node addresses") + framework.ExpectNoError(framework.WaitForAllNodesSchedulable(config.f.Client)) nodeList := framework.GetReadySchedulableNodesOrDie(config.f.Client) config.externalAddrs = framework.NodeAddresses(nodeList, api.NodeExternalIP) if len(config.externalAddrs) < 2 { @@ -501,6 +502,7 @@ func (config *KubeProxyTestConfig) cleanup() { } func (config *KubeProxyTestConfig) createNetProxyPods(podName string, selector map[string]string) []*api.Pod { + framework.ExpectNoError(framework.WaitForAllNodesSchedulable(config.f.Client)) nodes := framework.GetReadySchedulableNodesOrDie(config.f.Client) // create pods, one for each node diff --git a/test/e2e/networking.go b/test/e2e/networking.go index c43b8535a3f..ca5ad86a7d7 100644 --- a/test/e2e/networking.go +++ b/test/e2e/networking.go @@ -111,6 +111,7 @@ var _ = framework.KubeDescribe("Networking", func() { By("Creating a webserver (pending) pod on each node") + framework.ExpectNoError(framework.WaitForAllNodesSchedulable(f.Client)) nodes := framework.GetReadySchedulableNodesOrDie(f.Client) if len(nodes.Items) == 1 {