From 49a4d6045f5ab06736ab1aacc7517b5ff7f0cf7c Mon Sep 17 00:00:00 2001 From: "mingzhou.swx" Date: Mon, 10 Jul 2023 15:43:46 +0800 Subject: [PATCH] add e2e for advanced deployment scale down old unhealthy pod first Signed-off-by: mingzhou.swx --- test/e2e/deployment_test.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/test/e2e/deployment_test.go b/test/e2e/deployment_test.go index a6a12cda..82382681 100644 --- a/test/e2e/deployment_test.go +++ b/test/e2e/deployment_test.go @@ -44,7 +44,7 @@ var _ = SIGDescribe("Advanced Deployment", func() { return k8sClient.Get(context.TODO(), key, object) } - UpdateDeployment := func(deployment *apps.Deployment, version string) *apps.Deployment { + UpdateDeployment := func(deployment *apps.Deployment, version string, images ...string) *apps.Deployment { By(fmt.Sprintf("update deployment %v to version: %v", client.ObjectKeyFromObject(deployment), version)) var clone *apps.Deployment Expect(retry.RetryOnConflict(defaultRetry, func() error { @@ -53,7 +53,11 @@ var _ = SIGDescribe("Advanced Deployment", func() { if err != nil { return err } - clone.Spec.Template.Spec.Containers[0].Image = deployment.Spec.Template.Spec.Containers[0].Image + if len(images) == 0 { + clone.Spec.Template.Spec.Containers[0].Image = deployment.Spec.Template.Spec.Containers[0].Image + } else { + clone.Spec.Template.Spec.Containers[0].Image = images[0] + } clone.Spec.Template.Spec.Containers[0].Env[0].Value = version strategy := unmarshal(clone.Annotations[rolloutsv1alpha1.DeploymentStrategyAnnotation]) strategy.Paused = true @@ -324,6 +328,18 @@ var _ = SIGDescribe("Advanced Deployment", func() { UpdatePartitionWithCheck(deployment, intstr.FromInt(3)) UpdatePartitionWithCheck(deployment, intstr.FromInt(5)) }) + + It("scale down old unhealthy first", func() { + deployment := &apps.Deployment{} + deployment.Namespace = namespace + Expect(ReadYamlToObject("./test_data/deployment/deployment.yaml", deployment)).ToNot(HaveOccurred()) + deployment.Annotations["rollouts.kruise.io/deployment-strategy"] = `{"rollingUpdate":{"maxUnavailable":"0","maxSurge":"1"}}` + CreateObject(deployment) + UpdateDeployment(deployment, "version2", "busybox:not-exists") + UpdatePartitionWithoutCheck(deployment, intstr.FromInt(1)) + UpdateDeployment(deployment, "version3", "busybox:1.32") + CheckReplicas(deployment, 5, 5, 0) + }) }) })