diff --git a/test/e2e/storage/csi_mock_volume.go b/test/e2e/storage/csi_mock_volume.go index 8b97c69b100..f01275f4efa 100644 --- a/test/e2e/storage/csi_mock_volume.go +++ b/test/e2e/storage/csi_mock_volume.go @@ -181,8 +181,7 @@ var _ = utils.SIGDescribe("CSI mock volume", func() { } m.driver = drivers.InitMockCSIDriver(driverOpts) - config, testCleanup := m.driver.PrepareTest(f) - m.testCleanups = append(m.testCleanups, testCleanup) + config := m.driver.PrepareTest(f) m.config = config m.provisioner = config.GetUniqueDriverName() diff --git a/test/e2e/storage/drivers/csi.go b/test/e2e/storage/drivers/csi.go index ff985bc63a1..ae18a3f9352 100644 --- a/test/e2e/storage/drivers/csi.go +++ b/test/e2e/storage/drivers/csi.go @@ -206,7 +206,7 @@ func (h *hostpathCSIDriver) GetSnapshotClass(config *storageframework.PerTestCon return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns) } -func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { // Create secondary namespace which will be used for creating driver driverNamespace := utils.CreateDriverNamespace(f) driverns := driverNamespace.Name @@ -285,8 +285,9 @@ func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) (*storageframewo driverns, cleanup, cancelLogging) + ginkgo.DeferCleanup(cleanupFunc) - return config, cleanupFunc + return config } // mockCSI @@ -531,7 +532,7 @@ func (m *mockCSIDriver) GetSnapshotClass(config *storageframework.PerTestConfig, return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns) } -func (m *mockCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (m *mockCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { m.clientSet = f.ClientSet // Create secondary namespace which will be used for creating driver @@ -689,12 +690,12 @@ func (m *mockCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.P cleanup, cancelLogging) - cleanupFunc := func() { + ginkgo.DeferCleanup(func() { embeddedCleanup() driverCleanupFunc() - } + }) - return config, cleanupFunc + return config } func (m *mockCSIDriver) interceptGRPC(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) { @@ -860,7 +861,7 @@ func (g *gcePDCSIDriver) GetSnapshotClass(config *storageframework.PerTestConfig return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns) } -func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { testns := f.Namespace.Name cfg := &storageframework.PerTestConfig{ Driver: g, @@ -870,7 +871,7 @@ func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*storageframework. if framework.ProviderIs("gke") { framework.Logf("The csi gce-pd driver is automatically installed in GKE. Skipping driver installation.") - return cfg, func() {} + return cfg } ginkgo.By("deploying csi gce-pd driver") @@ -917,13 +918,14 @@ func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*storageframework. driverns, cleanup, cancelLogging) + ginkgo.DeferCleanup(cleanupFunc) return &storageframework.PerTestConfig{ Driver: g, Prefix: "gcepd", Framework: f, DriverNamespace: driverNamespace, - }, cleanupFunc + } } // WaitForCSIDriverRegistrationOnAllNodes waits for the CSINode object to be updated diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index a1f2f4afc0b..d9300bdb8d9 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -157,7 +157,7 @@ func (n *nfsDriver) GetDynamicProvisionStorageClass(config *storageframework.Per return storageframework.GetStorageClass(provisioner, parameters, nil, ns) } -func (n *nfsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (n *nfsDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { cs := f.ClientSet ns := f.Namespace n.externalPluginName = fmt.Sprintf("example.com/nfs-%s", ns.Name) @@ -167,6 +167,10 @@ func (n *nfsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTe err := e2eauth.BindClusterRole(cs.RbacV1(), "cluster-admin", ns.Name, rbacv1.Subject{Kind: rbacv1.ServiceAccountKind, Namespace: ns.Name, Name: "default"}) framework.ExpectNoError(err) + ginkgo.DeferCleanup(func(ctx context.Context) { + clusterRoleBindingName := ns.Name + "--" + "cluster-admin" + cs.RbacV1().ClusterRoleBindings().Delete(ctx, clusterRoleBindingName, *metav1.NewDeleteOptions(0)) + }) err = e2eauth.WaitForAuthorizationUpdate(cs.AuthorizationV1(), serviceaccount.MakeUsername(ns.Name, "default"), @@ -175,16 +179,15 @@ func (n *nfsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTe ginkgo.By("creating an external dynamic provisioner pod") n.externalProvisionerPod = utils.StartExternalProvisioner(cs, ns.Name, n.externalPluginName) + ginkgo.DeferCleanup(func() { + framework.ExpectNoError(e2epod.DeletePodWithWait(cs, n.externalProvisionerPod)) + }) return &storageframework.PerTestConfig{ - Driver: n, - Prefix: "nfs", - Framework: f, - }, func() { - framework.ExpectNoError(e2epod.DeletePodWithWait(cs, n.externalProvisionerPod)) - clusterRoleBindingName := ns.Name + "--" + "cluster-admin" - cs.RbacV1().ClusterRoleBindings().Delete(context.TODO(), clusterRoleBindingName, *metav1.NewDeleteOptions(0)) - } + Driver: n, + Prefix: "nfs", + Framework: f, + } } func (n *nfsDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -307,12 +310,12 @@ func (i *iSCSIDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2 return &pvSource, nil } -func (i *iSCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (i *iSCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: i, Prefix: "iscsi", Framework: f, - }, func() {} + } } func (i *iSCSIDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -500,12 +503,12 @@ func (r *rbdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2ev return &pvSource, nil } -func (r *rbdDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (r *rbdDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: r, Prefix: "rbd", Framework: f, - }, func() {} + } } func (r *rbdDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -614,12 +617,12 @@ func (c *cephFSDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e }, nil } -func (c *cephFSDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (c *cephFSDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: c, Prefix: "cephfs", Framework: f, - }, func() {} + } } func (c *cephFSDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -690,12 +693,12 @@ func (h *hostPathDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume } } -func (h *hostPathDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (h *hostPathDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: h, Prefix: "hostpath", Framework: f, - }, func() {} + } } func (h *hostPathDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -770,12 +773,12 @@ func (h *hostPathSymlinkDriver) GetVolumeSource(readOnly bool, fsType string, e2 } } -func (h *hostPathSymlinkDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (h *hostPathSymlinkDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: h, Prefix: "hostpathsymlink", Framework: f, - }, func() {} + } } func (h *hostPathSymlinkDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -911,12 +914,12 @@ func (e *emptydirDriver) CreateVolume(config *storageframework.PerTestConfig, vo return nil } -func (e *emptydirDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (e *emptydirDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: e, Prefix: "emptydir", Framework: f, - }, func() {} + } } // GCE @@ -1062,7 +1065,7 @@ func (g *gcePdDriver) GetDynamicProvisionStorageClass(config *storageframework.P return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns) } -func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (g *gcePdDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { config := &storageframework.PerTestConfig{ Driver: g, Prefix: "gcepd", @@ -1076,7 +1079,7 @@ func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*storageframework.Per }, } } - return config, func() {} + return config } @@ -1209,21 +1212,22 @@ func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *storageframework return storageframework.GetStorageClass(provisioner, parameters, nil, ns) } -func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { - return &storageframework.PerTestConfig{ - Driver: v, - Prefix: "vsphere", - Framework: f, - }, func() { - // Driver Cleanup function - // Logout each vSphere client connection to prevent session leakage - nodes := vspheretest.GetReadySchedulableNodeInfos() - for _, node := range nodes { - if node.VSphere.Client != nil { - node.VSphere.Client.Logout(context.TODO()) - } +func (v *vSphereDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { + ginkgo.DeferCleanup(func() { + // Driver Cleanup function + // Logout each vSphere client connection to prevent session leakage + nodes := vspheretest.GetReadySchedulableNodeInfos() + for _, node := range nodes { + if node.VSphere.Client != nil { + node.VSphere.Client.Logout(context.TODO()) } } + }) + return &storageframework.PerTestConfig{ + Driver: v, + Prefix: "vsphere", + Framework: f, + } } func (v *vSphereDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -1354,12 +1358,12 @@ func (a *azureDiskDriver) GetDynamicProvisionStorageClass(config *storageframewo return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns) } -func (a *azureDiskDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (a *azureDiskDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: a, Prefix: "azure", Framework: f, - }, func() {} + } } func (a *azureDiskDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -1492,7 +1496,7 @@ func (a *awsDriver) GetDynamicProvisionStorageClass(config *storageframework.Per return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns) } -func (a *awsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (a *awsDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { config := &storageframework.PerTestConfig{ Driver: a, Prefix: "aws", @@ -1506,7 +1510,7 @@ func (a *awsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTe }, } } - return config, func() {} + return config } func (a *awsDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -1628,7 +1632,7 @@ func (l *localDriver) GetDriverInfo() *storageframework.DriverInfo { func (l *localDriver) SkipUnsupportedTest(pattern storageframework.TestPattern) { } -func (l *localDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (l *localDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { var err error l.node, err = e2enode.GetRandomReadySchedulableNode(f.ClientSet) framework.ExpectNoError(err) @@ -1650,14 +1654,13 @@ func (l *localDriver) PrepareTest(f *framework.Framework) (*storageframework.Per } } + ginkgo.DeferCleanup(l.hostExec.Cleanup) return &storageframework.PerTestConfig{ - Driver: l, - Prefix: "local", - Framework: f, - ClientNodeSelection: e2epod.NodeSelection{Name: l.node.Name}, - }, func() { - l.hostExec.Cleanup() - } + Driver: l, + Prefix: "local", + Framework: f, + ClientNodeSelection: e2epod.NodeSelection{Name: l.node.Name}, + } } func (l *localDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { @@ -1848,12 +1851,12 @@ func (a *azureFileDriver) GetDynamicProvisionStorageClass(config *storageframewo return storageframework.GetStorageClass(provisioner, parameters, &immediateBinding, ns) } -func (a *azureFileDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (a *azureFileDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { return &storageframework.PerTestConfig{ Driver: a, Prefix: "azure-file", Framework: f, - }, func() {} + } } func (a *azureFileDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { diff --git a/test/e2e/storage/external/external.go b/test/e2e/storage/external/external.go index 76305946b5a..1ae31c63ce7 100644 --- a/test/e2e/storage/external/external.go +++ b/test/e2e/storage/external/external.go @@ -415,12 +415,12 @@ func (d *driverDefinition) GetCSIDriverName(e2econfig *storageframework.PerTestC return d.DriverInfo.Name } -func (d *driverDefinition) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { +func (d *driverDefinition) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig { e2econfig := &storageframework.PerTestConfig{ Driver: d, Prefix: "external", Framework: f, ClientNodeSelection: e2epod.NodeSelection{Name: d.ClientNodeName}, } - return e2econfig, func() {} + return e2econfig } diff --git a/test/e2e/storage/framework/testdriver.go b/test/e2e/storage/framework/testdriver.go index 5429cea145f..b8a8996ee85 100644 --- a/test/e2e/storage/framework/testdriver.go +++ b/test/e2e/storage/framework/testdriver.go @@ -47,9 +47,9 @@ type TestDriver interface { SkipUnsupportedTest(TestPattern) // PrepareTest is called at test execution time each time a new test case is about to start. - // It sets up all necessary resources and returns the per-test configuration - // plus a cleanup function that frees all allocated resources. - PrepareTest(f *framework.Framework) (*PerTestConfig, func()) + // It sets up all necessary resources and returns the per-test configuration. + // Cleanup is handled via ginkgo.DeferCleanup inside PrepareTest. + PrepareTest(f *framework.Framework) *PerTestConfig } // TestVolume is the result of PreprovisionedVolumeTestDriver.CreateVolume. diff --git a/test/e2e/storage/non_graceful_node_shutdown.go b/test/e2e/storage/non_graceful_node_shutdown.go index c9dbb6a0889..d6832b9774e 100644 --- a/test/e2e/storage/non_graceful_node_shutdown.go +++ b/test/e2e/storage/non_graceful_node_shutdown.go @@ -84,12 +84,11 @@ var _ = utils.SIGDescribe("[Feature:NodeOutOfServiceVolumeDetach] [Disruptive] [ // Install gce pd csi driver ginkgo.By("deploying csi gce-pd driver") driver := drivers.InitGcePDCSIDriver() - config, cleanup := driver.PrepareTest(f) + config := driver.PrepareTest(f) dDriver, ok := driver.(storageframework.DynamicPVTestDriver) if !ok { e2eskipper.Skipf("csi driver expected DynamicPVTestDriver but got %v", driver) } - defer cleanup() ginkgo.By("Creating a gce-pd storage class") sc := dDriver.GetDynamicProvisionStorageClass(config, "") _, err := c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{}) diff --git a/test/e2e/storage/testsuites/capacity.go b/test/e2e/storage/testsuites/capacity.go index 1c36dfb389c..bed993f6160 100644 --- a/test/e2e/storage/testsuites/capacity.go +++ b/test/e2e/storage/testsuites/capacity.go @@ -33,7 +33,6 @@ import ( e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" admissionapi "k8s.io/pod-security-admission/api" ) @@ -81,10 +80,9 @@ func (p *capacityTestSuite) SkipUnsupportedTests(driver storageframework.TestDri func (p *capacityTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { var ( - dInfo = driver.GetDriverInfo() - dDriver storageframework.DynamicPVTestDriver - driverCleanup func() - sc *storagev1.StorageClass + dInfo = driver.GetDriverInfo() + dDriver storageframework.DynamicPVTestDriver + sc *storagev1.StorageClass ) // Beware that it also registers an AfterEach which renders f unusable. Any code using @@ -95,23 +93,15 @@ func (p *capacityTestSuite) DefineTests(driver storageframework.TestDriver, patt init := func() { dDriver, _ = driver.(storageframework.DynamicPVTestDriver) // Now do the more expensive test initialization. - config, cleanup := driver.PrepareTest(f) - driverCleanup = cleanup + config := driver.PrepareTest(f) sc = dDriver.GetDynamicProvisionStorageClass(config, pattern.FsType) if sc == nil { e2eskipper.Skipf("Driver %q does not define Dynamic Provision StorageClass - skipping", dInfo.Name) } } - cleanup := func() { - err := storageutils.TryFunc(driverCleanup) - driverCleanup = nil - framework.ExpectNoError(err, "while cleaning up driver") - } - ginkgo.It("provides storage capacity information", func() { init() - defer cleanup() timeout := time.Minute pollInterval := time.Second diff --git a/test/e2e/storage/testsuites/disruptive.go b/test/e2e/storage/testsuites/disruptive.go index 16e2707b7c1..f9574cf7f45 100644 --- a/test/e2e/storage/testsuites/disruptive.go +++ b/test/e2e/storage/testsuites/disruptive.go @@ -74,8 +74,7 @@ func (s *disruptiveTestSuite) SkipUnsupportedTests(driver storageframework.TestD func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig cs clientset.Interface ns *v1.Namespace @@ -97,7 +96,7 @@ func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pa l.cs = f.ClientSet // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) @@ -118,8 +117,6 @@ func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pa l.resource = nil } - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") } diff --git a/test/e2e/storage/testsuites/ephemeral.go b/test/e2e/storage/testsuites/ephemeral.go index 817c41a49e2..64c3a048260 100644 --- a/test/e2e/storage/testsuites/ephemeral.go +++ b/test/e2e/storage/testsuites/ephemeral.go @@ -35,7 +35,6 @@ import ( e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" admissionapi "k8s.io/pod-security-admission/api" ) @@ -104,8 +103,7 @@ func (p *ephemeralTestSuite) SkipUnsupportedTests(driver storageframework.TestDr func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig testCase *EphemeralTest resource *storageframework.VolumeResource @@ -138,7 +136,7 @@ func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pat l = local{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, e2evolume.SizeRange{}) switch pattern.VolType { @@ -167,7 +165,6 @@ func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pat cleanup := func() { var cleanUpErrs []error cleanUpErrs = append(cleanUpErrs, l.resource.CleanupResource()) - cleanUpErrs = append(cleanUpErrs, storageutils.TryFunc(l.driverCleanup)) err := utilerrors.NewAggregate(cleanUpErrs) framework.ExpectNoError(err, "while cleaning up") } diff --git a/test/e2e/storage/testsuites/fsgroupchangepolicy.go b/test/e2e/storage/testsuites/fsgroupchangepolicy.go index 12f0f8a8cf4..542264119a6 100644 --- a/test/e2e/storage/testsuites/fsgroupchangepolicy.go +++ b/test/e2e/storage/testsuites/fsgroupchangepolicy.go @@ -96,10 +96,9 @@ func (s *fsGroupChangePolicyTestSuite) SkipUnsupportedTests(driver storageframew func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() - driver storageframework.TestDriver - resource *storageframework.VolumeResource + config *storageframework.PerTestConfig + driver storageframework.TestDriver + resource *storageframework.VolumeResource } var l local @@ -112,7 +111,7 @@ func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestD e2eskipper.SkipIfNodeOSDistroIs("windows") l = local{} l.driver = driver - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange l.resource = storageframework.CreateVolumeResource(l.driver, l.config, pattern, testVolumeSizeRange) } @@ -126,11 +125,6 @@ func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestD l.resource = nil } - if l.driverCleanup != nil { - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil - } - framework.ExpectNoError(errors.NewAggregate(errs), "while cleanup resource") } diff --git a/test/e2e/storage/testsuites/multivolume.go b/test/e2e/storage/testsuites/multivolume.go index e668e93cb75..a7d7d4b2870 100644 --- a/test/e2e/storage/testsuites/multivolume.go +++ b/test/e2e/storage/testsuites/multivolume.go @@ -87,8 +87,7 @@ func (t *multiVolumeTestSuite) SkipUnsupportedTests(driver storageframework.Test func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig cs clientset.Interface ns *v1.Namespace @@ -114,7 +113,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, p l.driver = driver // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) } @@ -124,8 +123,6 @@ func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, p errs = append(errs, resource.CleanupResource()) } - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil framework.ExpectNoError(errors.NewAggregate(errs), "while cleanup resource") l.migrationCheck.validateMigrationVolumeOpCounts() } diff --git a/test/e2e/storage/testsuites/provisioning.go b/test/e2e/storage/testsuites/provisioning.go index 93b4696b235..ca0a6513d6d 100644 --- a/test/e2e/storage/testsuites/provisioning.go +++ b/test/e2e/storage/testsuites/provisioning.go @@ -114,8 +114,7 @@ func (p *provisioningTestSuite) SkipUnsupportedTests(driver storageframework.Tes func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig testCase *StorageClassTest cs clientset.Interface @@ -140,7 +139,7 @@ func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver, l = local{} dDriver, _ = driver.(storageframework.DynamicPVTestDriver) // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.cs = l.config.Framework.ClientSet testVolumeSizeRange := p.GetTestSuiteInfo().SupportedSizeRange @@ -177,10 +176,6 @@ func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver, } cleanup := func() { - err := storageutils.TryFunc(l.driverCleanup) - l.driverCleanup = nil - framework.ExpectNoError(err, "while cleaning up driver") - l.migrationCheck.validateMigrationVolumeOpCounts() } diff --git a/test/e2e/storage/testsuites/readwriteoncepod.go b/test/e2e/storage/testsuites/readwriteoncepod.go index e28a54220ed..85124d50ef6 100644 --- a/test/e2e/storage/testsuites/readwriteoncepod.go +++ b/test/e2e/storage/testsuites/readwriteoncepod.go @@ -33,7 +33,6 @@ import ( e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" admissionapi "k8s.io/pod-security-admission/api" ) @@ -44,8 +43,7 @@ type readWriteOncePodTestSuite struct { var _ storageframework.TestSuite = &readWriteOncePodTestSuite{} type readWriteOncePodTest struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig cs clientset.Interface volume *storageframework.VolumeResource @@ -96,7 +94,7 @@ func (t *readWriteOncePodTestSuite) DefineTests(driver storageframework.TestDriv init := func() { l = readWriteOncePodTest{} - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.cs = f.ClientSet l.pods = []*v1.Pod{} l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driverInfo.InTreePluginName) @@ -114,7 +112,6 @@ func (t *readWriteOncePodTestSuite) DefineTests(driver storageframework.TestDriv err := l.volume.CleanupResource() errs = append(errs, err) - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") l.migrationCheck.validateMigrationVolumeOpCounts() } diff --git a/test/e2e/storage/testsuites/snapshottable.go b/test/e2e/storage/testsuites/snapshottable.go index 0e3b247d31c..f279a7ad0e4 100644 --- a/test/e2e/storage/testsuites/snapshottable.go +++ b/test/e2e/storage/testsuites/snapshottable.go @@ -112,10 +112,9 @@ func (s *snapshottableTestSuite) DefineTests(driver storageframework.TestDriver, ginkgo.Describe("volume snapshot controller", func() { var ( - err error - config *storageframework.PerTestConfig - driverCleanup func() - cleanupSteps []func() + err error + config *storageframework.PerTestConfig + cleanupSteps []func() cs clientset.Interface dc dynamic.Interface @@ -135,8 +134,7 @@ func (s *snapshottableTestSuite) DefineTests(driver storageframework.TestDriver, dc = f.DynamicClient // Now do the more expensive test initialization. - config, driverCleanup = driver.PrepareTest(f) - cleanupSteps = append(cleanupSteps, driverCleanup) + config = driver.PrepareTest(f) cleanupSteps = append(cleanupSteps, func() { framework.ExpectNoError(volumeResource.CleanupResource()) diff --git a/test/e2e/storage/testsuites/snapshottable_stress.go b/test/e2e/storage/testsuites/snapshottable_stress.go index c6827386e2f..e56405b1424 100644 --- a/test/e2e/storage/testsuites/snapshottable_stress.go +++ b/test/e2e/storage/testsuites/snapshottable_stress.go @@ -128,18 +128,17 @@ func (t *snapshottableStressTestSuite) DefineTests(driver storageframework.TestD driverInfo = driver.GetDriverInfo() snapshottableDriver, _ = driver.(storageframework.SnapshottableTestDriver) cs = f.ClientSet - config, driverCleanup := driver.PrepareTest(f) + config := driver.PrepareTest(f) ctx, cancel := context.WithCancel(context.Background()) stressTest = &snapshottableStressTest{ - config: config, - driverCleanup: driverCleanup, - volumes: []*storageframework.VolumeResource{}, - snapshots: []*storageframework.SnapshotResource{}, - pods: []*v1.Pod{}, - testOptions: *driverInfo.VolumeSnapshotStressTestOptions, - ctx: ctx, - cancel: cancel, + config: config, + volumes: []*storageframework.VolumeResource{}, + snapshots: []*storageframework.SnapshotResource{}, + pods: []*v1.Pod{}, + testOptions: *driverInfo.VolumeSnapshotStressTestOptions, + ctx: ctx, + cancel: cancel, } } diff --git a/test/e2e/storage/testsuites/subpath.go b/test/e2e/storage/testsuites/subpath.go index 7616f3ed03c..4bf70fc32b8 100644 --- a/test/e2e/storage/testsuites/subpath.go +++ b/test/e2e/storage/testsuites/subpath.go @@ -99,8 +99,7 @@ func (s *subPathTestSuite) SkipUnsupportedTests(driver storageframework.TestDriv func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig hostExec storageutils.HostExec resource *storageframework.VolumeResource @@ -124,7 +123,7 @@ func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, patte l = local{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driver.GetDriverInfo().InTreePluginName) testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) @@ -181,8 +180,6 @@ func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, patte l.resource = nil } - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") if l.hostExec != nil { diff --git a/test/e2e/storage/testsuites/topology.go b/test/e2e/storage/testsuites/topology.go index 9f41a4ddda7..39120d53fae 100644 --- a/test/e2e/storage/testsuites/topology.go +++ b/test/e2e/storage/testsuites/topology.go @@ -44,8 +44,7 @@ type topologyTestSuite struct { } type topologyTest struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig migrationCheck *migrationOpCheck @@ -112,7 +111,7 @@ func (t *topologyTestSuite) DefineTests(driver storageframework.TestDriver, patt l := topologyTest{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.resource = storageframework.VolumeResource{ Config: l.config, @@ -156,8 +155,6 @@ func (t *topologyTestSuite) DefineTests(driver storageframework.TestDriver, patt cleanup := func(l topologyTest) { t.CleanupResources(cs, &l) - err := storageutils.TryFunc(l.driverCleanup) - l.driverCleanup = nil framework.ExpectNoError(err, "while cleaning up driver") l.migrationCheck.validateMigrationVolumeOpCounts() diff --git a/test/e2e/storage/testsuites/volume_expand.go b/test/e2e/storage/testsuites/volume_expand.go index 09acce9908b..b91e27690ad 100644 --- a/test/e2e/storage/testsuites/volume_expand.go +++ b/test/e2e/storage/testsuites/volume_expand.go @@ -35,7 +35,6 @@ import ( e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" admissionapi "k8s.io/pod-security-admission/api" ) @@ -102,8 +101,7 @@ func (v *volumeExpandTestSuite) SkipUnsupportedTests(driver storageframework.Tes func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig resource *storageframework.VolumeResource pod *v1.Pod @@ -122,7 +120,7 @@ func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver, l = local{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driver.GetDriverInfo().InTreePluginName) testVolumeSizeRange := v.GetTestSuiteInfo().SupportedSizeRange l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) @@ -149,8 +147,6 @@ func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver, l.resource = nil } - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") l.migrationCheck.validateMigrationVolumeOpCounts() } diff --git a/test/e2e/storage/testsuites/volume_io.go b/test/e2e/storage/testsuites/volume_io.go index 6045a64d577..489ad92f4ac 100644 --- a/test/e2e/storage/testsuites/volume_io.go +++ b/test/e2e/storage/testsuites/volume_io.go @@ -41,7 +41,6 @@ import ( e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" admissionapi "k8s.io/pod-security-admission/api" ) @@ -98,8 +97,7 @@ func (t *volumeIOTestSuite) SkipUnsupportedTests(driver storageframework.TestDri func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig resource *storageframework.VolumeResource @@ -119,7 +117,7 @@ func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, patt l = local{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) testVolumeSizeRange := t.GetTestSuiteInfo().SupportedSizeRange @@ -137,11 +135,6 @@ func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, patt l.resource = nil } - if l.driverCleanup != nil { - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil - } - framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") l.migrationCheck.validateMigrationVolumeOpCounts() } diff --git a/test/e2e/storage/testsuites/volume_stress.go b/test/e2e/storage/testsuites/volume_stress.go index 4f035f9ef9d..f82dc1bced3 100644 --- a/test/e2e/storage/testsuites/volume_stress.go +++ b/test/e2e/storage/testsuites/volume_stress.go @@ -33,7 +33,6 @@ import ( e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" admissionapi "k8s.io/pod-security-admission/api" ) @@ -42,8 +41,7 @@ type volumeStressTestSuite struct { } type volumeStressTest struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig migrationCheck *migrationOpCheck @@ -121,7 +119,7 @@ func (t *volumeStressTestSuite) DefineTests(driver storageframework.TestDriver, l = &volumeStressTest{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.volumes = []*storageframework.VolumeResource{} l.pods = []*v1.Pod{} @@ -187,7 +185,6 @@ func (t *volumeStressTestSuite) DefineTests(driver storageframework.TestDriver, } wg.Wait() - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") l.migrationCheck.validateMigrationVolumeOpCounts() } diff --git a/test/e2e/storage/testsuites/volumelimits.go b/test/e2e/storage/testsuites/volumelimits.go index b73d63f54fc..944f7096ebb 100644 --- a/test/e2e/storage/testsuites/volumelimits.go +++ b/test/e2e/storage/testsuites/volumelimits.go @@ -90,8 +90,7 @@ func (t *volumeLimitsTestSuite) SkipUnsupportedTests(driver storageframework.Tes func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - testCleanup func() + config *storageframework.PerTestConfig cs clientset.Interface ns *v1.Namespace @@ -137,8 +136,7 @@ func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver, l.ns = f.Namespace l.cs = f.ClientSet - l.config, l.testCleanup = driver.PrepareTest(f) - defer l.testCleanup() + l.config = driver.PrepareTest(f) ginkgo.By("Picking a node") // Some CSI drivers are deployed to a single node (e.g csi-hostpath), @@ -255,8 +253,7 @@ func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver, l.ns = f.Namespace l.cs = f.ClientSet - l.config, l.testCleanup = driver.PrepareTest(f) - defer l.testCleanup() + l.config = driver.PrepareTest(f) nodeNames := []string{} if l.config.ClientNodeSelection.Name != "" { diff --git a/test/e2e/storage/testsuites/volumemode.go b/test/e2e/storage/testsuites/volumemode.go index 75a7b98eac4..1448c23f8a0 100644 --- a/test/e2e/storage/testsuites/volumemode.go +++ b/test/e2e/storage/testsuites/volumemode.go @@ -116,7 +116,7 @@ func (t *volumeModeTestSuite) DefineTests(driver storageframework.TestDriver, pa l.cs = f.ClientSet // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) } diff --git a/test/e2e/storage/testsuites/volumeperf.go b/test/e2e/storage/testsuites/volumeperf.go index eaa1965be13..5c77f47eb7b 100644 --- a/test/e2e/storage/testsuites/volumeperf.go +++ b/test/e2e/storage/testsuites/volumeperf.go @@ -93,14 +93,13 @@ func (t *volumePerformanceTestSuite) SkipUnsupportedTests(driver storageframewor func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - testCleanup func() - cs clientset.Interface - ns *v1.Namespace - scName string - pvcs []*v1.PersistentVolumeClaim - options *storageframework.PerformanceTestOptions - stopCh chan struct{} + config *storageframework.PerTestConfig + cs clientset.Interface + ns *v1.Namespace + scName string + pvcs []*v1.PersistentVolumeClaim + options *storageframework.PerformanceTestOptions + stopCh chan struct{} } var ( dInfo *storageframework.DriverInfo @@ -142,7 +141,6 @@ func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDri ginkgo.By(fmt.Sprintf("Deleting Storage Class %s", l.scName)) err := l.cs.StorageV1().StorageClasses().Delete(context.TODO(), l.scName, metav1.DeleteOptions{}) framework.ExpectNoError(err) - l.testCleanup() }) ginkgo.It("should provision volumes at scale within performance constraints [Slow] [Serial]", func() { @@ -151,7 +149,7 @@ func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDri ns: f.Namespace, options: dInfo.PerformanceTestOptions, } - l.config, l.testCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) // Stats for volume provisioning operation // TODO: Add stats for attach, resize and snapshot diff --git a/test/e2e/storage/testsuites/volumes.go b/test/e2e/storage/testsuites/volumes.go index bc35bacbc15..472e7169148 100644 --- a/test/e2e/storage/testsuites/volumes.go +++ b/test/e2e/storage/testsuites/volumes.go @@ -36,7 +36,6 @@ import ( e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" - storageutils "k8s.io/kubernetes/test/e2e/storage/utils" imageutils "k8s.io/kubernetes/test/utils/image" admissionapi "k8s.io/pod-security-admission/api" ) @@ -118,8 +117,7 @@ func skipTestIfBlockNotSupported(driver storageframework.TestDriver) { func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { type local struct { - config *storageframework.PerTestConfig - driverCleanup func() + config *storageframework.PerTestConfig resource *storageframework.VolumeResource @@ -137,7 +135,7 @@ func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, patte l = local{} // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) + l.config = driver.PrepareTest(f) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) testVolumeSizeRange := t.GetTestSuiteInfo().SupportedSizeRange l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) @@ -153,8 +151,6 @@ func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, patte l.resource = nil } - errs = append(errs, storageutils.TryFunc(l.driverCleanup)) - l.driverCleanup = nil framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") l.migrationCheck.validateMigrationVolumeOpCounts() }