Adding downgrade test for ingress-gce
This commit is contained in:
		@@ -40,10 +40,10 @@ func EtcdUpgrade(target_storage, target_version string) error {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IngressUpgrade() error {
 | 
					func IngressUpgrade(isUpgrade bool) error {
 | 
				
			||||||
	switch TestContext.Provider {
 | 
						switch TestContext.Provider {
 | 
				
			||||||
	case "gce":
 | 
						case "gce":
 | 
				
			||||||
		return ingressUpgradeGCE()
 | 
							return ingressUpgradeGCE(isUpgrade)
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		return fmt.Errorf("IngressUpgrade() is not implemented for provider %s", TestContext.Provider)
 | 
							return fmt.Errorf("IngressUpgrade() is not implemented for provider %s", TestContext.Provider)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -73,10 +73,19 @@ func etcdUpgradeGCE(target_storage, target_version string) error {
 | 
				
			|||||||
	return err
 | 
						return err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func ingressUpgradeGCE() error {
 | 
					func ingressUpgradeGCE(isUpgrade bool) error {
 | 
				
			||||||
	// Flip glbc image from latest release image to HEAD to simulate an upgrade.
 | 
						// 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.
 | 
						// Kubelet should restart glbc automatically.
 | 
				
			||||||
	sshResult, err := NodeExec(GetMasterHost(), "sudo sed -i -re 's/(image:)(.*)/\\1 gcr.io\\/e2e-ingress-gce\\/ingress-gce-e2e-glbc-amd64:latest/' /etc/kubernetes/manifests/glbc.manifest")
 | 
						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"
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							// Downgrade
 | 
				
			||||||
 | 
							command = "sudo sed -i -re 's/(image:)(.*)/\\1 gcr.io\\/google_containers\\/glbc:0.9.7/' /etc/kubernetes/manifests/glbc.manifest"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						sshResult, err := NodeExec(GetMasterHost(), command)
 | 
				
			||||||
	// TODO(rramkumar): Ensure glbc pod is in "Running" state before proceeding.
 | 
						// TODO(rramkumar): Ensure glbc pod is in "Running" state before proceeding.
 | 
				
			||||||
	LogSSHResult(sshResult)
 | 
						LogSSHResult(sshResult)
 | 
				
			||||||
	return err
 | 
						return err
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,7 +72,7 @@ var kubeProxyDowngradeTests = []upgrades.Test{
 | 
				
			|||||||
	&upgrades.IngressUpgradeTest{},
 | 
						&upgrades.IngressUpgradeTest{},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Upgrade ingress with custom image.
 | 
					// Forcefully swap ingress image.
 | 
				
			||||||
var ingressUpgradeTests = []upgrades.Test{
 | 
					var ingressUpgradeTests = []upgrades.Test{
 | 
				
			||||||
	&upgrades.IngressUpgradeTest{},
 | 
						&upgrades.IngressUpgradeTest{},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -224,7 +224,32 @@ var _ = SIGDescribe("ingress Upgrade [Feature:IngressUpgrade]", func() {
 | 
				
			|||||||
			upgradeFunc := func() {
 | 
								upgradeFunc := func() {
 | 
				
			||||||
				start := time.Now()
 | 
									start := time.Now()
 | 
				
			||||||
				defer finalizeUpgradeTest(start, ingressTest)
 | 
									defer finalizeUpgradeTest(start, ingressTest)
 | 
				
			||||||
				framework.ExpectNoError(framework.IngressUpgrade())
 | 
									framework.ExpectNoError(framework.IngressUpgrade(true))
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								runUpgradeSuite(f, ingressUpgradeTests, testFrameworks, testSuite, upgCtx, upgrades.IngressUpgrade, upgradeFunc)
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var _ = SIGDescribe("ingress Downgrade [Feature:IngressDowngrade]", func() {
 | 
				
			||||||
 | 
						f := framework.NewDefaultFramework("ingress-downgrade")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Create the frameworks here because we can only create them
 | 
				
			||||||
 | 
						// in a "Describe".
 | 
				
			||||||
 | 
						testFrameworks := createUpgradeFrameworks(ingressUpgradeTests)
 | 
				
			||||||
 | 
						Describe("ingress downgrade", func() {
 | 
				
			||||||
 | 
							It("should maintain a functioning ingress", func() {
 | 
				
			||||||
 | 
								upgCtx, err := getUpgradeContext(f.ClientSet.Discovery(), "")
 | 
				
			||||||
 | 
								framework.ExpectNoError(err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								testSuite := &junit.TestSuite{Name: "ingress downgrade"}
 | 
				
			||||||
 | 
								ingressTest := &junit.TestCase{Name: "[sig-networking] ingress-downgrade", Classname: "upgrade_tests"}
 | 
				
			||||||
 | 
								testSuite.TestCases = append(testSuite.TestCases, ingressTest)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								upgradeFunc := func() {
 | 
				
			||||||
 | 
									start := time.Now()
 | 
				
			||||||
 | 
									defer finalizeUpgradeTest(start, ingressTest)
 | 
				
			||||||
 | 
									framework.ExpectNoError(framework.IngressUpgrade(false))
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			runUpgradeSuite(f, ingressUpgradeTests, testFrameworks, testSuite, upgCtx, upgrades.IngressUpgrade, upgradeFunc)
 | 
								runUpgradeSuite(f, ingressUpgradeTests, testFrameworks, testSuite, upgCtx, upgrades.IngressUpgrade, upgradeFunc)
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user