diff --git a/test/e2e/framework/autoscaling/autoscaling_utils.go b/test/e2e/framework/autoscaling/autoscaling_utils.go index bd64006963a..d7953a6d7ee 100644 --- a/test/e2e/framework/autoscaling/autoscaling_utils.go +++ b/test/e2e/framework/autoscaling/autoscaling_utils.go @@ -507,23 +507,16 @@ func (rc *ResourceConsumer) WaitForReplicas(ctx context.Context, desiredReplicas // EnsureDesiredReplicasInRange ensure the replicas is in a desired range func (rc *ResourceConsumer) EnsureDesiredReplicasInRange(ctx context.Context, minDesiredReplicas, maxDesiredReplicas int, duration time.Duration, hpaName string) { interval := 10 * time.Second - gomega.Consistently(ctx, framework.HandleRetry(func(ctx context.Context) (bool, error) { - replicas := rc.GetReplicas(ctx) - framework.Logf("expecting there to be in [%d, %d] replicas (are: %d)", minDesiredReplicas, maxDesiredReplicas, replicas) - as, err := rc.GetHpa(ctx, hpaName) - if err != nil { - framework.Logf("Error getting HPA: %s", err) - } else { - framework.Logf("HPA status: %+v", as.Status) - } - if replicas < minDesiredReplicas { - return false, fmt.Errorf("number of replicas below target") - } else if replicas > maxDesiredReplicas { - return false, fmt.Errorf("number of replicas above target") - } else { - return true, nil // Expected number of replicas found. Continue polling until timeout. - } - })).WithTimeout(duration).WithPolling(interval).Should(gomega.BeTrue()) + framework.Gomega().Consistently(ctx, func(ctx context.Context) int { + return rc.GetReplicas(ctx) + }).WithTimeout(duration).WithPolling(interval).Should(gomega.And(gomega.BeNumerically(">=", minDesiredReplicas), gomega.BeNumerically("<=", maxDesiredReplicas))) + + as, err := rc.GetHpa(ctx, hpaName) + if err != nil { + framework.Logf("Error getting HPA: %s", err) + } else { + framework.Logf("HPA status: %+v", as.Status) + } } // Pause stops background goroutines responsible for consuming resources.