Skip to content

Commit

Permalink
Merge pull request #50397 from bdbauer/statefulTesting
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue (batch tested with PRs 51113, 46597, 50397, 51052, 51166)

Add statefulset upgrade tests to cluster_upgrade

**What this PR does / why we need it**:
Adds already created statefulset upgrade tests to cluster_upgrade.go. With further test infra changes, this will allow them to be continuously run, giving better signals.

Detect and prevent issues like #48327

**Release note**:

```release-note
NONE
```
  • Loading branch information
Kubernetes Submit Queue committed Aug 24, 2017
2 parents c041567 + 014b765 commit 14cc8cd
Showing 1 changed file with 46 additions and 11 deletions.
57 changes: 46 additions & 11 deletions test/e2e/lifecycle/cluster_upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
})
})

Expand All @@ -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)
})
})

Expand All @@ -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)
})
})
})
Expand All @@ -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() {
Expand All @@ -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)
})
})
})
Expand All @@ -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(), "")
Expand All @@ -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)
})
})
})
Expand Down Expand Up @@ -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)
Expand All @@ -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,
Expand All @@ -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",
Expand Down

0 comments on commit 14cc8cd

Please sign in to comment.