diff --git a/test/e2e/deployment.go b/test/e2e/deployment.go index 8c1794db191..82c6307470c 100644 --- a/test/e2e/deployment.go +++ b/test/e2e/deployment.go @@ -1134,10 +1134,12 @@ func testScaledRolloutDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) firstCond := client.ReplicaSetHasDesiredReplicas(c.Extensions(), first) - wait.PollImmediate(10*time.Millisecond, 1*time.Minute, firstCond) + err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, firstCond) + Expect(err).NotTo(HaveOccurred()) secondCond := client.ReplicaSetHasDesiredReplicas(c.Extensions(), second) - wait.PollImmediate(10*time.Millisecond, 1*time.Minute, secondCond) + err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, secondCond) + Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Updating the size (up) and template at the same time for deployment %q", deploymentName)) newReplicas := int32(20) @@ -1193,10 +1195,12 @@ func testScaledRolloutDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) oldCond := client.ReplicaSetHasDesiredReplicas(c.Extensions(), oldRs) - wait.PollImmediate(10*time.Millisecond, 1*time.Minute, oldCond) + err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, oldCond) + Expect(err).NotTo(HaveOccurred()) newCond := client.ReplicaSetHasDesiredReplicas(c.Extensions(), newRs) - wait.PollImmediate(10*time.Millisecond, 1*time.Minute, newCond) + err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, newCond) + Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Updating the size (down) and template at the same time for deployment %q", deploymentName)) newReplicas = int32(5) diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 2577c11b257..de4bbbba950 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -2892,7 +2892,18 @@ func WaitForDeploymentStatusValid(c clientset.Interface, d *extensions.Deploymen Logf(reason) return false, nil } - return true, nil + + // When the deployment status and its underlying resources reach the desired state, we're done + if deployment.Status.Replicas == deployment.Spec.Replicas && + deployment.Status.UpdatedReplicas == deployment.Spec.Replicas && + deployment.Status.AvailableReplicas == deployment.Spec.Replicas { + return true, nil + } + + reason = fmt.Sprintf("deployment status: %#v", deployment.Status) + Logf(reason) + + return false, nil }) if err == wait.ErrWaitTimeout { @@ -2952,9 +2963,7 @@ func WaitForDeploymentStatus(c clientset.Interface, d *extensions.Deployment) er // When the deployment status and its underlying resources reach the desired state, we're done if deployment.Status.Replicas == deployment.Spec.Replicas && - deployment.Status.UpdatedReplicas == deployment.Spec.Replicas && - deploymentutil.GetReplicaCountForReplicaSets(oldRSs) == 0 && - deploymentutil.GetReplicaCountForReplicaSets([]*extensions.ReplicaSet{newRS}) == deployment.Spec.Replicas { + deployment.Status.UpdatedReplicas == deployment.Spec.Replicas { return true, nil } return false, nil