Skip to content

Commit 7662a5e

Browse files
committed
Merge pull request kubernetes#21734 from janetkuo/rollover-flake
Wait for pods to become available before rolling over in deployment e2e test
2 parents f4de3ea + ecce949 commit 7662a5e

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

test/e2e/deployment.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,12 +454,14 @@ func testRolloverDeployment(f *Framework) {
454454
Logf("error in waiting for pods to come up: %s", err)
455455
Expect(err).NotTo(HaveOccurred())
456456
}
457+
deploymentMinReadySeconds := 5
458+
err = waitForPodsReady(c, ns, podName, deploymentMinReadySeconds)
459+
Expect(err).NotTo(HaveOccurred())
457460

458461
// Create a deployment to delete nginx pods and instead bring up redis-slave pods.
459462
deploymentName, deploymentImageName := "redis-deployment", "redis-slave"
460463
deploymentReplicas := 4
461464
deploymentImage := "gcr.io/google_samples/gb-redisslave:v1"
462-
deploymentMinReadySeconds := 5
463465
deploymentStrategyType := extensions.RollingUpdateDeploymentStrategyType
464466
Logf("Creating deployment %s", deploymentName)
465467
newDeployment := newDeployment(deploymentName, deploymentReplicas, deploymentPodLabels, deploymentImageName, deploymentImage, deploymentStrategyType, nil)

test/e2e/util.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2144,6 +2144,23 @@ func waitForDeploymentStatus(c clientset.Interface, ns, deploymentName string, d
21442144
})
21452145
}
21462146

2147+
func waitForPodsReady(c *clientset.Clientset, ns, name string, minReadySeconds int) error {
2148+
label := labels.SelectorFromSet(labels.Set(map[string]string{"name": name}))
2149+
options := api.ListOptions{LabelSelector: label}
2150+
return wait.Poll(poll, 5*time.Minute, func() (bool, error) {
2151+
pods, err := c.Pods(ns).List(options)
2152+
if err != nil {
2153+
return false, nil
2154+
}
2155+
for _, pod := range pods.Items {
2156+
if !deploymentutil.IsPodAvailable(&pod, minReadySeconds) {
2157+
return false, nil
2158+
}
2159+
}
2160+
return true, nil
2161+
})
2162+
}
2163+
21472164
// Waits for the deployment to clean up old rcs.
21482165
func waitForDeploymentOldRSsNum(c *clientset.Clientset, ns, deploymentName string, desiredRSNum int) error {
21492166
return wait.Poll(poll, 5*time.Minute, func() (bool, error) {

0 commit comments

Comments
 (0)