mirror of https://github.com/k3s-io/k3s
Adding downgrade test for ingress-gce
parent
ee14d2edf0
commit
2c3aba380c
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue