From de4fb135ab645178b421ff6027ec714c3804bbf5 Mon Sep 17 00:00:00 2001 From: Rohit Ramkumar Date: Mon, 5 Feb 2018 11:57:57 -0800 Subject: [PATCH] Introduce some plumbing which makes it possible to specify which ingress image to upgrade to for the upgrade test --- test/e2e/framework/nodes_util.go | 18 +++++++++++------- test/e2e/framework/test_context.go | 2 ++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/test/e2e/framework/nodes_util.go b/test/e2e/framework/nodes_util.go index 20fd2a157d..845ceb7e65 100644 --- a/test/e2e/framework/nodes_util.go +++ b/test/e2e/framework/nodes_util.go @@ -74,17 +74,21 @@ func etcdUpgradeGCE(target_storage, target_version string) error { } func ingressUpgradeGCE(isUpgrade bool) error { - // Flip glbc image from latest release image to HEAD to simulate an upgrade. - // Flip from HEAD to latest release image to simulate a downgrade. - // Kubelet should restart glbc automatically. var command string if isUpgrade { - // Upgrade - command = "sudo sed -i -re 's/(image:)(.*)/\\1 gcr.io\\/k8s-ingress-image-push\\/ingress-gce-e2e-glbc-amd64:latest/' /etc/kubernetes/manifests/glbc.manifest" + // User specified image to upgrade to. + targetImage := TestContext.IngressUpgradeImage + if targetImage != "" { + command = fmt.Sprintf("sudo sed -i -re 's|(image:)(.*)|\\1 %s|' /etc/kubernetes/manifests/glbc.manifest", targetImage) + } else { + // Upgrade to latest HEAD image. + command = "sudo sed -i -re 's/(image:)(.*)/\\1 k8s.gcr.io\\/k8s-ingress-image-push\\/ingress-gce-e2e-glbc-amd64:latest/' /etc/kubernetes/manifests/glbc.manifest" + } } else { - // Downgrade - command = "sudo sed -i -re 's/(image:)(.*)/\\1 k8s.gcr.io\\/glbc:0.9.7/' /etc/kubernetes/manifests/glbc.manifest" + // Downgrade to latest release image. + command = "sudo sed -i -re 's/(image:)(.*)/\\1 k8s.gcr.io\\/google_containers\\/glbc:0.9.7/' /etc/kubernetes/manifests/glbc.manifest" } + // Kubelet should restart glbc automatically. sshResult, err := NodeExec(GetMasterHost(), command) LogSSHResult(sshResult) return err diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 342865168e..33aee3e449 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -61,6 +61,7 @@ type TestContextType struct { UpgradeTarget string EtcdUpgradeStorage string EtcdUpgradeVersion string + IngressUpgradeImage string UpgradeImage string GCEUpgradeScript string ContainerRuntime string @@ -260,6 +261,7 @@ func RegisterClusterFlags() { flag.StringVar(&TestContext.EtcdUpgradeStorage, "etcd-upgrade-storage", "", "The storage version to upgrade to (either 'etcdv2' or 'etcdv3') if doing an etcd upgrade test.") flag.StringVar(&TestContext.EtcdUpgradeVersion, "etcd-upgrade-version", "", "The etcd binary version to upgrade to (e.g., '3.0.14', '2.3.7') if doing an etcd upgrade test.") flag.StringVar(&TestContext.UpgradeImage, "upgrade-image", "", "Image to upgrade to (e.g. 'container_vm' or 'gci') if doing an upgrade test.") + flag.StringVar(&TestContext.IngressUpgradeImage, "ingress-upgrade-image", "", "Image to upgrade to if doing an upgrade test for ingress.") flag.StringVar(&TestContext.GCEUpgradeScript, "gce-upgrade-script", "", "Script to use to upgrade a GCE cluster.") flag.BoolVar(&TestContext.CleanStart, "clean-start", false, "If true, purge all namespaces except default and system before running tests. This serves to Cleanup test namespaces from failed/interrupted e2e runs in a long-lived cluster.") flag.BoolVar(&TestContext.GarbageCollectorEnabled, "garbage-collector-enabled", true, "Set to true if the garbage collector is enabled in the kube-apiserver and kube-controller-manager, then some tests will rely on the garbage collector to delete dependent resources.")