diff --git a/test/e2e/deployment.go b/test/e2e/deployment.go index f843662e46b..de8842aa1ca 100644 --- a/test/e2e/deployment.go +++ b/test/e2e/deployment.go @@ -36,6 +36,13 @@ import ( . "github.com/onsi/gomega" ) +const ( + // nginxImage defined in kubectl.go + nginxImageName = "nginx" + redisImage = "gcr.io/google_containers/redis:e2e" + redisImageName = "redis" +) + var _ = Describe("Deployment", func() { f := NewDefaultFramework("deployment") @@ -205,17 +212,17 @@ func testNewDeployment(f *Framework) { c := clientset.FromUnversionedClient(f.Client) deploymentName := "test-new-deployment" - podLabels := map[string]string{"name": "nginx"} + podLabels := map[string]string{"name": nginxImageName} replicas := 1 Logf("Creating simple deployment %s", deploymentName) - d := newDeployment(deploymentName, replicas, podLabels, "nginx", "gcr.io/google_containers/nginx", extensions.RollingUpdateDeploymentStrategyType, nil) + d := newDeployment(deploymentName, replicas, podLabels, nginxImageName, nginxImage, extensions.RollingUpdateDeploymentStrategyType, nil) d.Annotations = map[string]string{"test": "should-copy-to-replica-set", kubectl.LastAppliedConfigAnnotation: "should-not-copy-to-replica-set"} _, err := c.Extensions().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) defer stopDeployment(c, f.Client, ns, deploymentName) // Wait for it to be updated to revision 1 - err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", "gcr.io/google_containers/nginx") + err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", nginxImage) Expect(err).NotTo(HaveOccurred()) err = waitForDeploymentStatus(c, ns, deploymentName, replicas, replicas-1, replicas+1, 0) @@ -242,12 +249,12 @@ func testRollingUpdateDeployment(f *Framework) { deploymentPodLabels := map[string]string{"name": "sample-pod"} rsPodLabels := map[string]string{ "name": "sample-pod", - "pod": "nginx", + "pod": nginxImageName, } rsName := "test-rolling-update-controller" replicas := 3 - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, "nginx", "gcr.io/google_containers/nginx")) + _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, nginxImageName, nginxImage)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. err = verifyPods(unversionedClient, ns, "sample-pod", false, 3) @@ -259,12 +266,12 @@ func testRollingUpdateDeployment(f *Framework) { // Create a deployment to delete nginx pods and instead bring up redis pods. deploymentName := "test-rolling-update-deployment" Logf("Creating deployment %s", deploymentName) - _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, "redis", "gcr.io/google_containers/redis", extensions.RollingUpdateDeploymentStrategyType, nil)) + _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, redisImageName, redisImage, extensions.RollingUpdateDeploymentStrategyType, nil)) Expect(err).NotTo(HaveOccurred()) defer stopDeployment(c, f.Client, ns, deploymentName) // Wait for it to be updated to revision 1 - err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", "gcr.io/google_containers/redis") + err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", redisImage) Expect(err).NotTo(HaveOccurred()) err = waitForDeploymentStatus(c, ns, deploymentName, replicas, replicas-1, replicas+1, 0) @@ -292,7 +299,7 @@ func testRollingUpdateDeploymentEvents(f *Framework) { deploymentPodLabels := map[string]string{"name": "sample-pod-2"} rsPodLabels := map[string]string{ "name": "sample-pod-2", - "pod": "nginx", + "pod": nginxImageName, } rsName := "test-rolling-scale-controller" replicas := 1 @@ -300,7 +307,7 @@ func testRollingUpdateDeploymentEvents(f *Framework) { rsRevision := "3546343826724305832" annotations := make(map[string]string) annotations[deploymentutil.RevisionAnnotation] = rsRevision - rs := newRS(rsName, replicas, rsPodLabels, "nginx", "gcr.io/google_containers/nginx") + rs := newRS(rsName, replicas, rsPodLabels, nginxImageName, nginxImage) rs.Annotations = annotations _, err := c.Extensions().ReplicaSets(ns).Create(rs) @@ -315,12 +322,12 @@ func testRollingUpdateDeploymentEvents(f *Framework) { // Create a deployment to delete nginx pods and instead bring up redis pods. deploymentName := "test-rolling-scale-deployment" Logf("Creating deployment %s", deploymentName) - _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, "redis", "gcr.io/google_containers/redis", extensions.RollingUpdateDeploymentStrategyType, nil)) + _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, redisImageName, redisImage, extensions.RollingUpdateDeploymentStrategyType, nil)) Expect(err).NotTo(HaveOccurred()) defer stopDeployment(c, f.Client, ns, deploymentName) // Wait for it to be updated to revision 3546343826724305833 - err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "3546343826724305833", "gcr.io/google_containers/redis") + err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "3546343826724305833", redisImage) Expect(err).NotTo(HaveOccurred()) err = waitForDeploymentStatus(c, ns, deploymentName, replicas, replicas-1, replicas+1, 0) @@ -354,12 +361,12 @@ func testRecreateDeployment(f *Framework) { deploymentPodLabels := map[string]string{"name": "sample-pod-3"} rsPodLabels := map[string]string{ "name": "sample-pod-3", - "pod": "nginx", + "pod": nginxImageName, } rsName := "test-recreate-controller" replicas := 3 - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, "nginx", "gcr.io/google_containers/nginx")) + _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, nginxImageName, nginxImage)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. err = verifyPods(unversionedClient, ns, "sample-pod-3", false, 3) @@ -371,12 +378,12 @@ func testRecreateDeployment(f *Framework) { // Create a deployment to delete nginx pods and instead bring up redis pods. deploymentName := "test-recreate-deployment" Logf("Creating deployment %s", deploymentName) - _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, "redis", "gcr.io/google_containers/redis", extensions.RecreateDeploymentStrategyType, nil)) + _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, redisImageName, redisImage, extensions.RecreateDeploymentStrategyType, nil)) Expect(err).NotTo(HaveOccurred()) defer stopDeployment(c, f.Client, ns, deploymentName) // Wait for it to be updated to revision 1 - err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", "gcr.io/google_containers/redis") + err = waitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", redisImage) Expect(err).NotTo(HaveOccurred()) err = waitForDeploymentStatus(c, ns, deploymentName, replicas, 0, replicas, 0) @@ -409,12 +416,12 @@ func testDeploymentCleanUpPolicy(f *Framework) { deploymentPodLabels := map[string]string{"name": "cleanup-pod"} rsPodLabels := map[string]string{ "name": "cleanup-pod", - "pod": "nginx", + "pod": nginxImageName, } rsName := "test-cleanup-controller" replicas := 1 revisionHistoryLimit := util.IntPtr(0) - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, "nginx", "gcr.io/google_containers/nginx")) + _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, nginxImageName, nginxImage)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. @@ -427,7 +434,7 @@ func testDeploymentCleanUpPolicy(f *Framework) { // Create a deployment to delete nginx pods and instead bring up redis pods. deploymentName := "test-cleanup-deployment" Logf("Creating deployment %s", deploymentName) - _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, "redis", "gcr.io/google_containers/redis", extensions.RollingUpdateDeploymentStrategyType, revisionHistoryLimit)) + _, err = c.Extensions().Deployments(ns).Create(newDeployment(deploymentName, replicas, deploymentPodLabels, redisImageName, redisImage, extensions.RollingUpdateDeploymentStrategyType, revisionHistoryLimit)) Expect(err).NotTo(HaveOccurred()) defer stopDeployment(c, f.Client, ns, deploymentName) @@ -447,12 +454,12 @@ func testRolloverDeployment(f *Framework) { deploymentPodLabels := map[string]string{"name": podName} rsPodLabels := map[string]string{ "name": podName, - "pod": "nginx", + "pod": nginxImageName, } rsName := "test-rollover-controller" rsReplicas := 4 - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, rsReplicas, rsPodLabels, "nginx", "gcr.io/google_containers/nginx")) + _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, rsReplicas, rsPodLabels, nginxImageName, nginxImage)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. err = verifyPods(unversionedClient, ns, podName, false, rsReplicas) @@ -492,7 +499,7 @@ func testRolloverDeployment(f *Framework) { // Before the deployment finishes, update the deployment to rollover the above 2 ReplicaSets and bring up redis pods. // If the deployment already finished here, the test would fail. When this happens, increase its minReadySeconds or replicas to prevent it. Expect(newRS.Spec.Replicas).Should(BeNumerically("<", deploymentReplicas)) - updatedDeploymentImageName, updatedDeploymentImage := "redis", "gcr.io/google_containers/redis" + updatedDeploymentImageName, updatedDeploymentImage := redisImageName, redisImage deployment, err = updateDeploymentWithRetries(c, ns, newDeployment.Name, func(update *extensions.Deployment) { update.Spec.Template.Spec.Containers[0].Name = updatedDeploymentImageName update.Spec.Template.Spec.Containers[0].Image = updatedDeploymentImage @@ -518,8 +525,8 @@ func testPausedDeployment(f *Framework) { unversionedClient := f.Client c := clientset.FromUnversionedClient(unversionedClient) deploymentName := "test-paused-deployment" - podLabels := map[string]string{"name": "nginx"} - d := newDeployment(deploymentName, 1, podLabels, "nginx", "gcr.io/google_containers/nginx", extensions.RollingUpdateDeploymentStrategyType, nil) + podLabels := map[string]string{"name": nginxImageName} + d := newDeployment(deploymentName, 1, podLabels, nginxImageName, nginxImage, extensions.RollingUpdateDeploymentStrategyType, nil) d.Spec.Paused = true Logf("Creating paused deployment %s", deploymentName) _, err := c.Extensions().Deployments(ns).Create(d) @@ -604,9 +611,9 @@ func testRollbackDeployment(f *Framework) { deploymentPodLabels := map[string]string{"name": podName} // 1. Create a deployment to create nginx pods. - deploymentName, deploymentImageName := "test-rollback-deployment", "nginx" + deploymentName, deploymentImageName := "test-rollback-deployment", nginxImageName deploymentReplicas := 1 - deploymentImage := "gcr.io/google_containers/nginx" + deploymentImage := nginxImage deploymentStrategyType := extensions.RollingUpdateDeploymentStrategyType Logf("Creating deployment %s", deploymentName) d := newDeployment(deploymentName, deploymentReplicas, deploymentPodLabels, deploymentImageName, deploymentImage, deploymentStrategyType, nil) @@ -622,8 +629,8 @@ func testRollbackDeployment(f *Framework) { Expect(err).NotTo(HaveOccurred()) // 2. Update the deployment to create redis pods. - updatedDeploymentImage := "gcr.io/google_containers/redis" - updatedDeploymentImageName := "redis" + updatedDeploymentImage := redisImage + updatedDeploymentImageName := redisImageName deployment, err := updateDeploymentWithRetries(c, ns, d.Name, func(update *extensions.Deployment) { update.Spec.Template.Spec.Containers[0].Name = updatedDeploymentImageName update.Spec.Template.Spec.Containers[0].Image = updatedDeploymentImage @@ -692,22 +699,22 @@ func testRollbackDeploymentRSNoRevision(f *Framework) { deploymentPodLabels := map[string]string{"name": podName} rsPodLabels := map[string]string{ "name": podName, - "pod": "nginx", + "pod": nginxImageName, } // Create an old RS without revision rsName := "test-rollback-no-revision-controller" rsReplicas := 0 - rs := newRS(rsName, rsReplicas, rsPodLabels, "nginx", "gcr.io/google_containers/nginx") + rs := newRS(rsName, rsReplicas, rsPodLabels, nginxImageName, nginxImage) rs.Annotations = make(map[string]string) rs.Annotations["make"] = "difference" _, err := c.Extensions().ReplicaSets(ns).Create(rs) Expect(err).NotTo(HaveOccurred()) // 1. Create a deployment to create nginx pods, which have different template than the replica set created above. - deploymentName, deploymentImageName := "test-rollback-no-revision-deployment", "nginx" + deploymentName, deploymentImageName := "test-rollback-no-revision-deployment", nginxImageName deploymentReplicas := 1 - deploymentImage := "gcr.io/google_containers/nginx" + deploymentImage := nginxImage deploymentStrategyType := extensions.RollingUpdateDeploymentStrategyType Logf("Creating deployment %s", deploymentName) d := newDeployment(deploymentName, deploymentReplicas, deploymentPodLabels, deploymentImageName, deploymentImage, deploymentStrategyType, nil) @@ -745,8 +752,8 @@ func testRollbackDeploymentRSNoRevision(f *Framework) { checkDeploymentRevision(c, ns, deploymentName, "1", deploymentImageName, deploymentImage) // 3. Update the deployment to create redis pods. - updatedDeploymentImage := "gcr.io/google_containers/redis" - updatedDeploymentImageName := "redis" + updatedDeploymentImage := redisImage + updatedDeploymentImageName := redisImageName deployment, err := updateDeploymentWithRetries(c, ns, d.Name, func(update *extensions.Deployment) { update.Spec.Template.Spec.Containers[0].Name = updatedDeploymentImageName update.Spec.Template.Spec.Containers[0].Image = updatedDeploymentImage @@ -831,7 +838,7 @@ func testDeploymentLabelAdopted(f *Framework) { rsName := "test-adopted-controller" replicas := 3 - image := "gcr.io/google_containers/nginx" + image := nginxImage _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, podLabels, podName, image)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up.