Merge pull request #96023 from chrishenzie/e2e-cleanup-non-namespaced-objects

Cleanup non-namespaced objects in e2e test during interrupts
This commit is contained in:
Kubernetes Prow Robot 2020-10-30 11:14:36 -07:00 committed by GitHub
commit 3d62aad55e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -81,10 +81,11 @@ func (t *stressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.Te
var (
dInfo = driver.GetDriverInfo()
cs clientset.Interface
l *stressTest
)
// Check preconditions before setting up namespace via framework below.
ginkgo.BeforeEach(func() {
// Check preconditions.
if dInfo.StressTestOptions == nil {
e2eskipper.Skipf("Driver %s doesn't specify stress test options -- skipping", dInfo.Name)
}
@ -104,9 +105,9 @@ func (t *stressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.Te
// f must run inside an It or Context callback.
f := framework.NewDefaultFramework("stress")
init := func() *stressTest {
init := func() {
cs = f.ClientSet
l := &stressTest{}
l = &stressTest{}
// Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f)
@ -115,11 +116,26 @@ func (t *stressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.Te
l.pods = []*v1.Pod{}
l.testOptions = *dInfo.StressTestOptions
l.ctx, l.cancel = context.WithCancel(context.Background())
return l
}
cleanup := func(l *stressTest) {
createPodsAndVolumes := func() {
for i := 0; i < l.testOptions.NumPods; i++ {
framework.Logf("Creating resources for pod %v/%v", i, l.testOptions.NumPods-1)
r := CreateVolumeResource(driver, l.config, pattern, t.GetTestSuiteInfo().SupportedSizeRange)
l.resources = append(l.resources, r)
podConfig := e2epod.Config{
NS: f.Namespace.Name,
PVCs: []*v1.PersistentVolumeClaim{r.Pvc},
SeLinuxLabel: e2epv.SELinuxLabel,
}
pod, err := e2epod.MakeSecPod(&podConfig)
framework.ExpectNoError(err)
l.pods = append(l.pods, pod)
}
}
cleanup := func() {
var errs []error
framework.Logf("Stopping and waiting for all test routines to finish")
@ -141,27 +157,16 @@ func (t *stressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.Te
l.migrationCheck.validateMigrationVolumeOpCounts()
}
ginkgo.BeforeEach(func() {
init()
createPodsAndVolumes()
})
f.AddAfterEach("cleanup", func(f *framework.Framework, failed bool) {
cleanup()
})
ginkgo.It("multiple pods should access different volumes repeatedly [Slow] [Serial]", func() {
l := init()
defer func() {
cleanup(l)
}()
for i := 0; i < l.testOptions.NumPods; i++ {
framework.Logf("Creating resources for pod %v/%v", i, l.testOptions.NumPods-1)
r := CreateVolumeResource(driver, l.config, pattern, t.GetTestSuiteInfo().SupportedSizeRange)
l.resources = append(l.resources, r)
podConfig := e2epod.Config{
NS: f.Namespace.Name,
PVCs: []*v1.PersistentVolumeClaim{r.Pvc},
SeLinuxLabel: e2epv.SELinuxLabel,
}
pod, err := e2epod.MakeSecPod(&podConfig)
framework.ExpectNoError(err)
l.pods = append(l.pods, pod)
}
// Restart pod repeatedly
for i := 0; i < l.testOptions.NumPods; i++ {
podIndex := i