From 4836fd15100645a0de765ed62ebc38b58449d8d9 Mon Sep 17 00:00:00 2001 From: Cheng Xing Date: Wed, 10 Nov 2021 15:16:17 -0800 Subject: [PATCH] Skip OnRootMismatch tests if the CSI driver supports VOLUME_MOUNT_GROUP. --- test/e2e/storage/framework/testdriver.go | 1 + test/e2e/storage/testsuites/fsgroupchangepolicy.go | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/test/e2e/storage/framework/testdriver.go b/test/e2e/storage/framework/testdriver.go index 1b198a45bb2..4d090ef7153 100644 --- a/test/e2e/storage/framework/testdriver.go +++ b/test/e2e/storage/framework/testdriver.go @@ -151,6 +151,7 @@ const ( CapPersistence Capability = "persistence" // data is persisted across pod restarts CapBlock Capability = "block" // raw block mode CapFsGroup Capability = "fsGroup" // volume ownership via fsGroup + CapVolumeMountGroup Capability = "volumeMountGroup" // Driver has the VolumeMountGroup CSI node capability. Because this is a FSGroup feature, the fsGroup capability must also be set to true. CapExec Capability = "exec" // exec a file in the volume CapSnapshotDataSource Capability = "snapshotDataSource" // support populate data from snapshot CapPVCDataSource Capability = "pvcDataSource" // support populate data from pvc diff --git a/test/e2e/storage/testsuites/fsgroupchangepolicy.go b/test/e2e/storage/testsuites/fsgroupchangepolicy.go index 999d0e9ed58..92059453416 100644 --- a/test/e2e/storage/testsuites/fsgroupchangepolicy.go +++ b/test/e2e/storage/testsuites/fsgroupchangepolicy.go @@ -23,6 +23,8 @@ import ( "github.com/onsi/ginkgo" v1 "k8s.io/api/core/v1" errors "k8s.io/apimachinery/pkg/util/errors" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/test/e2e/framework" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" @@ -206,10 +208,17 @@ func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestD test := t testCaseName := fmt.Sprintf("(%s)[LinuxOnly], %s", test.podfsGroupChangePolicy, test.name) ginkgo.It(testCaseName, func() { + dInfo := driver.GetDriverInfo() + policy := v1.PodFSGroupChangePolicy(test.podfsGroupChangePolicy) + + if dInfo.Capabilities[storageframework.CapVolumeMountGroup] && + utilfeature.DefaultFeatureGate.Enabled(features.DelegateFSGroupToCSIDriver) && + policy == v1.FSGroupChangeOnRootMismatch { + e2eskipper.Skipf("Driver %q supports VolumeMountGroup, which doesn't supported the OnRootMismatch FSGroup policy - skipping", dInfo.Name) + } + init() defer cleanup() - - policy := v1.PodFSGroupChangePolicy(test.podfsGroupChangePolicy) podConfig := e2epod.Config{ NS: f.Namespace.Name, NodeSelection: l.config.ClientNodeSelection,