From 98ba1d85198ecb9e05fe2c616e22a13b1aa51dcb Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Fri, 28 Dec 2018 17:41:45 +0100 Subject: [PATCH] e2e/storage: reset driver config in the test suite PR #70862 made each driver responsible for resetting its config, but as it turned out, one place was missed in that PR: the in-tree gcepd sets a node selector. Not resetting that caused other tests to fail randomly depending on test execution order. Now the test suite resets the config by taking a copy after setting up the driver and restoring that copy before each test. Long term the intention is to separate the entire test config from the static driver info (https://github.com/kubernetes/kubernetes/issues/72288), but for now resetting the config is the fastest way to fix the test flake. Fixes: #72378 --- test/e2e/storage/csi_volumes.go | 13 ++++++++----- test/e2e/storage/drivers/in_tree.go | 11 ----------- test/e2e/storage/in_tree_volumes.go | 13 ++++++++----- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/test/e2e/storage/csi_volumes.go b/test/e2e/storage/csi_volumes.go index 71878ead83d..5c5477119c2 100644 --- a/test/e2e/storage/csi_volumes.go +++ b/test/e2e/storage/csi_volumes.go @@ -127,20 +127,23 @@ var _ = utils.SIGDescribe("CSI Volumes", func() { for _, initDriver := range csiTestDrivers { curDriver := initDriver(config) + curConfig := curDriver.GetDriverInfo().Config Context(testsuites.GetDriverNameWithFeatureTags(curDriver), func() { - driver := curDriver - BeforeEach(func() { + // Reset config. The driver might have modified its copy + // in a previous test. + curDriver.GetDriverInfo().Config = curConfig + // setupDriver - driver.CreateDriver() + curDriver.CreateDriver() }) AfterEach(func() { // Cleanup driver - driver.CleanupDriver() + curDriver.CleanupDriver() }) - testsuites.RunTestSuite(f, driver, csiTestSuites, csiTunePattern) + testsuites.RunTestSuite(f, curDriver, csiTestSuites, csiTunePattern) }) } diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index 20d192502e2..728ab69794f 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -151,9 +151,6 @@ func (n *nfsDriver) CreateDriver() { ns := f.Namespace n.externalPluginName = fmt.Sprintf("example.com/nfs-%s", ns.Name) - // Reset config. It might have been modified by a previous CreateVolume call. - n.driverInfo.Config.ServerConfig = nil - // TODO(mkimuram): cluster-admin gives too much right but system:persistent-volume-provisioner // is not enough. We should create new clusterrole for testing. framework.BindClusterRole(cs.RbacV1beta1(), "cluster-admin", ns.Name, @@ -298,8 +295,6 @@ func (g *glusterFSDriver) GetPersistentVolumeSource(readOnly bool, fsType string } func (g *glusterFSDriver) CreateDriver() { - // Reset config. It might have been modified by a previous CreateVolume call. - g.driverInfo.Config.ServerConfig = nil } func (g *glusterFSDriver) CleanupDriver() { @@ -429,8 +424,6 @@ func (i *iSCSIDriver) GetPersistentVolumeSource(readOnly bool, fsType string, te } func (i *iSCSIDriver) CreateDriver() { - // Reset config. It might have been modified by a previous CreateVolume call. - i.driverInfo.Config.ServerConfig = nil } func (i *iSCSIDriver) CleanupDriver() { @@ -556,8 +549,6 @@ func (r *rbdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, test } func (r *rbdDriver) CreateDriver() { - // Reset config. It might have been modified by a previous CreateVolume call. - r.driverInfo.Config.ServerConfig = nil } func (r *rbdDriver) CleanupDriver() { @@ -670,8 +661,6 @@ func (c *cephFSDriver) GetPersistentVolumeSource(readOnly bool, fsType string, t } func (c *cephFSDriver) CreateDriver() { - // Reset config. It might have been modified by a previous CreateVolume call. - c.driverInfo.Config.ServerConfig = nil } func (c *cephFSDriver) CleanupDriver() { diff --git a/test/e2e/storage/in_tree_volumes.go b/test/e2e/storage/in_tree_volumes.go index c9f6401578f..7769a329fd7 100644 --- a/test/e2e/storage/in_tree_volumes.go +++ b/test/e2e/storage/in_tree_volumes.go @@ -69,20 +69,23 @@ var _ = utils.SIGDescribe("In-tree Volumes", func() { for _, initDriver := range testDrivers { curDriver := initDriver(config) + curConfig := curDriver.GetDriverInfo().Config Context(testsuites.GetDriverNameWithFeatureTags(curDriver), func() { - driver := curDriver - BeforeEach(func() { + // Reset config. The driver might have modified its copy + // in a previous test. + curDriver.GetDriverInfo().Config = curConfig + // setupDriver - driver.CreateDriver() + curDriver.CreateDriver() }) AfterEach(func() { // Cleanup driver - driver.CleanupDriver() + curDriver.CleanupDriver() }) - testsuites.RunTestSuite(f, driver, testSuites, intreeTunePattern) + testsuites.RunTestSuite(f, curDriver, testSuites, intreeTunePattern) }) } })