Adding downgrade test for ingress-gce

pull/6/head
Rohit Ramkumar 2018-01-22 14:44:13 -08:00
parent ee14d2edf0
commit 2c3aba380c
2 changed files with 40 additions and 6 deletions

View File

@ -40,10 +40,10 @@ func EtcdUpgrade(target_storage, target_version string) error {
}
}
func IngressUpgrade() error {
func IngressUpgrade(isUpgrade bool) error {
switch TestContext.Provider {
case "gce":
return ingressUpgradeGCE()
return ingressUpgradeGCE(isUpgrade)
default:
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
}
func ingressUpgradeGCE() 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.
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.
LogSSHResult(sshResult)
return err

View File

@ -72,7 +72,7 @@ var kubeProxyDowngradeTests = []upgrades.Test{
&upgrades.IngressUpgradeTest{},
}
// Upgrade ingress with custom image.
// Forcefully swap ingress image.
var ingressUpgradeTests = []upgrades.Test{
&upgrades.IngressUpgradeTest{},
}
@ -224,7 +224,32 @@ var _ = SIGDescribe("ingress Upgrade [Feature:IngressUpgrade]", func() {
upgradeFunc := func() {
start := time.Now()
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)
})