From 014b7659880d8cd0932c50b500e8c05bae6723fe Mon Sep 17 00:00:00 2001 From: Benjamin Bauer Date: Tue, 8 Aug 2017 10:50:38 -0700 Subject: [PATCH] Refactor cluster_upgrade to include statefulset upgrade tests. --- test/e2e/lifecycle/cluster_upgrade.go | 57 +++++++++++++++++++++------ 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/test/e2e/lifecycle/cluster_upgrade.go b/test/e2e/lifecycle/cluster_upgrade.go index 2a87f15f9e7..d3efc6629b3 100644 --- a/test/e2e/lifecycle/cluster_upgrade.go +++ b/test/e2e/lifecycle/cluster_upgrade.go @@ -53,12 +53,18 @@ var upgradeTests = []upgrades.Test{ &upgrades.AppArmorUpgradeTest{}, } +var statefulsetUpgradeTests = []upgrades.Test{ + &upgrades.MySqlUpgradeTest{}, + &upgrades.EtcdUpgradeTest{}, + &upgrades.CassandraUpgradeTest{}, +} + var _ = framework.KubeDescribe("Upgrade [Feature:Upgrade]", func() { f := framework.NewDefaultFramework("cluster-upgrade") // Create the frameworks here because we can only create them // in a "Describe". - testFrameworks := createUpgradeFrameworks() + testFrameworks := createUpgradeFrameworks(upgradeTests) SIGDescribe("master upgrade", func() { It("should maintain a functioning cluster [Feature:MasterUpgrade]", func() { upgCtx, err := getUpgradeContext(f.ClientSet.Discovery(), framework.TestContext.UpgradeTarget) @@ -78,7 +84,7 @@ var _ = framework.KubeDescribe("Upgrade [Feature:Upgrade]", func() { framework.ExpectNoError(framework.MasterUpgrade(target)) framework.ExpectNoError(framework.CheckMasterVersion(f.ClientSet, target)) } - runUpgradeSuite(f, testFrameworks, testSuite, upgCtx, upgrades.MasterUpgrade, upgradeFunc) + runUpgradeSuite(f, upgradeTests, testFrameworks, testSuite, upgCtx, upgrades.MasterUpgrade, upgradeFunc) }) }) @@ -100,7 +106,7 @@ var _ = framework.KubeDescribe("Upgrade [Feature:Upgrade]", func() { framework.ExpectNoError(framework.NodeUpgrade(f, target, framework.TestContext.UpgradeImage)) framework.ExpectNoError(framework.CheckNodesVersions(f.ClientSet, target)) } - runUpgradeSuite(f, testFrameworks, testSuite, upgCtx, upgrades.NodeUpgrade, upgradeFunc) + runUpgradeSuite(f, upgradeTests, testFrameworks, testSuite, upgCtx, upgrades.NodeUpgrade, upgradeFunc) }) }) @@ -121,7 +127,7 @@ var _ = framework.KubeDescribe("Upgrade [Feature:Upgrade]", func() { framework.ExpectNoError(framework.NodeUpgrade(f, target, framework.TestContext.UpgradeImage)) framework.ExpectNoError(framework.CheckNodesVersions(f.ClientSet, target)) } - runUpgradeSuite(f, testFrameworks, testSuite, upgCtx, upgrades.ClusterUpgrade, upgradeFunc) + runUpgradeSuite(f, upgradeTests, testFrameworks, testSuite, upgCtx, upgrades.ClusterUpgrade, upgradeFunc) }) }) }) @@ -131,7 +137,7 @@ var _ = SIGDescribe("Downgrade [Feature:Downgrade]", func() { // Create the frameworks here because we can only create them // in a "Describe". - testFrameworks := createUpgradeFrameworks() + testFrameworks := createUpgradeFrameworks(upgradeTests) SIGDescribe("cluster downgrade", func() { It("should maintain a functioning cluster [Feature:ClusterDowngrade]", func() { @@ -152,7 +158,7 @@ var _ = SIGDescribe("Downgrade [Feature:Downgrade]", func() { framework.ExpectNoError(framework.MasterUpgrade(target)) framework.ExpectNoError(framework.CheckMasterVersion(f.ClientSet, target)) } - runUpgradeSuite(f, testFrameworks, testSuite, upgCtx, upgrades.ClusterUpgrade, upgradeFunc) + runUpgradeSuite(f, upgradeTests, testFrameworks, testSuite, upgCtx, upgrades.ClusterUpgrade, upgradeFunc) }) }) }) @@ -162,7 +168,7 @@ var _ = SIGDescribe("etcd Upgrade [Feature:EtcdUpgrade]", func() { // Create the frameworks here because we can only create them // in a "Describe". - testFrameworks := createUpgradeFrameworks() + testFrameworks := createUpgradeFrameworks(upgradeTests) SIGDescribe("etcd upgrade", func() { It("should maintain a functioning cluster", func() { upgCtx, err := getUpgradeContext(f.ClientSet.Discovery(), "") @@ -177,7 +183,35 @@ var _ = SIGDescribe("etcd Upgrade [Feature:EtcdUpgrade]", func() { defer finalizeUpgradeTest(start, etcdTest) framework.ExpectNoError(framework.EtcdUpgrade(framework.TestContext.EtcdUpgradeStorage, framework.TestContext.EtcdUpgradeVersion)) } - runUpgradeSuite(f, testFrameworks, testSuite, upgCtx, upgrades.EtcdUpgrade, upgradeFunc) + runUpgradeSuite(f, upgradeTests, testFrameworks, testSuite, upgCtx, upgrades.EtcdUpgrade, upgradeFunc) + }) + }) +}) + +var _ = Describe("[sig-apps] stateful Upgrade [Feature:StatefulUpgrade]", func() { + f := framework.NewDefaultFramework("stateful-upgrade") + + // Create the frameworks here because we can only create them + // in a "Describe". + testFrameworks := createUpgradeFrameworks(statefulsetUpgradeTests) + framework.KubeDescribe("stateful upgrade", func() { + It("should maintain a functioning cluster", func() { + upgCtx, err := getUpgradeContext(f.ClientSet.Discovery(), framework.TestContext.UpgradeTarget) + framework.ExpectNoError(err) + + testSuite := &junit.TestSuite{Name: "Stateful upgrade"} + statefulUpgradeTest := &junit.TestCase{Name: "[sig-apps] stateful-upgrade", Classname: "upgrade_tests"} + testSuite.TestCases = append(testSuite.TestCases, statefulUpgradeTest) + upgradeFunc := func() { + start := time.Now() + defer finalizeUpgradeTest(start, statefulUpgradeTest) + target := upgCtx.Versions[1].Version.String() + framework.ExpectNoError(framework.MasterUpgrade(target)) + framework.ExpectNoError(framework.CheckMasterVersion(f.ClientSet, target)) + framework.ExpectNoError(framework.NodeUpgrade(f, target, framework.TestContext.UpgradeImage)) + framework.ExpectNoError(framework.CheckNodesVersions(f.ClientSet, target)) + } + runUpgradeSuite(f, statefulsetUpgradeTests, testFrameworks, testSuite, upgCtx, upgrades.ClusterUpgrade, upgradeFunc) }) }) }) @@ -241,10 +275,10 @@ func finalizeUpgradeTest(start time.Time, tc *junit.TestCase) { } } -func createUpgradeFrameworks() map[string]*framework.Framework { +func createUpgradeFrameworks(tests []upgrades.Test) map[string]*framework.Framework { nsFilter := regexp.MustCompile("[^[:word:]-]+") // match anything that's not a word character or hyphen testFrameworks := map[string]*framework.Framework{} - for _, t := range upgradeTests { + for _, t := range tests { ns := nsFilter.ReplaceAllString(t.Name(), "-") // and replace with a single hyphen ns = strings.Trim(ns, "-") testFrameworks[t.Name()] = framework.NewDefaultFramework(ns) @@ -254,6 +288,7 @@ func createUpgradeFrameworks() map[string]*framework.Framework { func runUpgradeSuite( f *framework.Framework, + tests []upgrades.Test, testFrameworks map[string]*framework.Framework, testSuite *junit.TestSuite, upgCtx *upgrades.UpgradeContext, @@ -264,7 +299,7 @@ func runUpgradeSuite( framework.ExpectNoError(err) cm := chaosmonkey.New(upgradeFunc) - for _, t := range upgradeTests { + for _, t := range tests { testCase := &junit.TestCase{ Name: t.Name(), Classname: "upgrade_tests",