From 8f915576c4d70accb3ce7914827184e6f21abc5f Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Wed, 12 Oct 2022 16:42:46 +0200 Subject: [PATCH] e2e: wait for deployment before scale down/up The scale down/up functions fail often with "deployment not found" errors. Possibly deploying with Podman is slower than deploying in a minikube VM, and there is a delay for the deployment to become available. Signed-off-by: Niels de Vos --- e2e/deployment.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/e2e/deployment.go b/e2e/deployment.go index faea048fe..ea7ce66dc 100644 --- a/e2e/deployment.go +++ b/e2e/deployment.go @@ -124,6 +124,9 @@ func waitForDeploymentInAvailableState(clientSet kubernetes.Interface, name, ns if isRetryableAPIError(err) { return false, nil } + if apierrs.IsNotFound(err) { + return false, nil + } e2elog.Logf("%q deployment to be Available (%d seconds elapsed)", name, int(time.Since(start).Seconds())) return false, err @@ -390,6 +393,12 @@ func waitForContainersArgsUpdate( ) error { e2elog.Logf("waiting for deployment updates %s/%s", ns, deploymentName) + // wait for the deployment to be available + err := waitForDeploymentInAvailableState(c, deploymentName, ns, deployTimeout) + if err != nil { + return fmt.Errorf("deployment %s/%s did not become available yet: %w", ns, deploymentName, err) + } + // Scale down to 0. scale, err := c.AppsV1().Deployments(ns).GetScale(context.TODO(), deploymentName, metav1.GetOptions{}) if err != nil {