Merge pull request #104722 from leiyiz/migration

turning on the CSIMigrationGCE feature flag
This commit is contained in:
Kubernetes Prow Robot 2021-11-16 15:28:32 -08:00 committed by GitHub
commit 6805e6ee41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 55 additions and 9 deletions

View File

@ -419,7 +419,7 @@ EVICTION_HARD="${EVICTION_HARD:-memory.available<250Mi,nodefs.available<10%,node
SCHEDULING_ALGORITHM_PROVIDER="${SCHEDULING_ALGORITHM_PROVIDER:-}" SCHEDULING_ALGORITHM_PROVIDER="${SCHEDULING_ALGORITHM_PROVIDER:-}"
# Optional: install a default StorageClass # Optional: install a default StorageClass
ENABLE_DEFAULT_STORAGE_CLASS="${ENABLE_DEFAULT_STORAGE_CLASS:-true}" ENABLE_DEFAULT_STORAGE_CLASS="${ENABLE_DEFAULT_STORAGE_CLASS:-false}"
# Optional: install volume snapshot CRDs # Optional: install volume snapshot CRDs
ENABLE_VOLUME_SNAPSHOTS="${ENABLE_VOLUME_SNAPSHOTS:-true}" ENABLE_VOLUME_SNAPSHOTS="${ENABLE_VOLUME_SNAPSHOTS:-true}"

View File

@ -471,7 +471,7 @@ EVICTION_HARD=${EVICTION_HARD:-memory.available<250Mi,nodefs.available<10%,nodef
SCHEDULING_ALGORITHM_PROVIDER=${SCHEDULING_ALGORITHM_PROVIDER:-} SCHEDULING_ALGORITHM_PROVIDER=${SCHEDULING_ALGORITHM_PROVIDER:-}
# Optional: install a default StorageClass # Optional: install a default StorageClass
ENABLE_DEFAULT_STORAGE_CLASS=${ENABLE_DEFAULT_STORAGE_CLASS:-true} ENABLE_DEFAULT_STORAGE_CLASS=${ENABLE_DEFAULT_STORAGE_CLASS:-false}
# Optional: install volume snapshot CRDs # Optional: install volume snapshot CRDs
ENABLE_VOLUME_SNAPSHOTS=${ENABLE_VOLUME_SNAPSHOTS:-true} ENABLE_VOLUME_SNAPSHOTS=${ENABLE_VOLUME_SNAPSHOTS:-true}

View File

@ -430,11 +430,12 @@ func volumeAttachmentRecoveryTestCase(t *testing.T, tc vaTest) {
fakeKubeClient := controllervolumetesting.CreateTestClient() fakeKubeClient := controllervolumetesting.CreateTestClient()
informerFactory := informers.NewSharedInformerFactory(fakeKubeClient, time.Second*1) informerFactory := informers.NewSharedInformerFactory(fakeKubeClient, time.Second*1)
var plugins []volume.VolumePlugin var plugins []volume.VolumePlugin
if tc.csiMigration {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigration, tc.csiMigration)()
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, tc.csiMigration)()
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.InTreePluginGCEUnregister, tc.csiMigration)()
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigration, tc.csiMigration)()
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, tc.csiMigration)()
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.InTreePluginGCEUnregister, tc.csiMigration)()
if tc.csiMigration {
// if InTreePluginGCEUnregister is enabled, only the CSI plugin is registered but not the in-tree one // if InTreePluginGCEUnregister is enabled, only the CSI plugin is registered but not the in-tree one
plugins = append(plugins, csi.ProbeVolumePlugins()...) plugins = append(plugins, csi.ProbeVolumePlugins()...)
} else { } else {

View File

@ -19,23 +19,26 @@ package metrics
import ( import (
"testing" "testing"
"k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
k8stypes "k8s.io/apimachinery/pkg/types" k8stypes "k8s.io/apimachinery/pkg/types"
utilfeature "k8s.io/apiserver/pkg/util/feature" utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/informers" "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
featuregatetesting "k8s.io/component-base/featuregate/testing"
csitrans "k8s.io/csi-translation-lib" csitrans "k8s.io/csi-translation-lib"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache" "k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache"
controllervolumetesting "k8s.io/kubernetes/pkg/controller/volume/attachdetach/testing" controllervolumetesting "k8s.io/kubernetes/pkg/controller/volume/attachdetach/testing"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/volume/csimigration" "k8s.io/kubernetes/pkg/volume/csimigration"
volumetesting "k8s.io/kubernetes/pkg/volume/testing" volumetesting "k8s.io/kubernetes/pkg/volume/testing"
"k8s.io/kubernetes/pkg/volume/util/types" "k8s.io/kubernetes/pkg/volume/util/types"
) )
func TestVolumesInUseMetricCollection(t *testing.T) { func TestVolumesInUseMetricCollection(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
fakeVolumePluginMgr, _ := volumetesting.GetTestVolumePluginMgr(t) fakeVolumePluginMgr, _ := volumetesting.GetTestVolumePluginMgr(t)
fakeClient := &fake.Clientset{} fakeClient := &fake.Clientset{}

View File

@ -26,15 +26,19 @@ import (
utilfeature "k8s.io/apiserver/pkg/util/feature" utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/informers" "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
featuregatetesting "k8s.io/component-base/featuregate/testing"
csitrans "k8s.io/csi-translation-lib" csitrans "k8s.io/csi-translation-lib"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache" "k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/volume/csimigration" "k8s.io/kubernetes/pkg/volume/csimigration"
volumetesting "k8s.io/kubernetes/pkg/volume/testing" volumetesting "k8s.io/kubernetes/pkg/volume/testing"
"k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util"
) )
func TestFindAndAddActivePods_FindAndRemoveDeletedPods(t *testing.T) { func TestFindAndAddActivePods_FindAndRemoveDeletedPods(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
fakeVolumePluginMgr, _ := volumetesting.GetTestVolumePluginMgr(t) fakeVolumePluginMgr, _ := volumetesting.GetTestVolumePluginMgr(t)
fakeClient := &fake.Clientset{} fakeClient := &fake.Clientset{}

View File

@ -567,6 +567,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations map[string]string claimAnnotations map[string]string
expClaimAnnotations map[string]string expClaimAnnotations map[string]string
migratedDriverGates []featuregate.Feature migratedDriverGates []featuregate.Feature
disabledDriverGates []featuregate.Feature
}{ }{
{ {
name: "migration on for GCE", name: "migration on for GCE",
@ -575,6 +576,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin}, claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin},
expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver}, expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver},
migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE}, migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
disabledDriverGates: []featuregate.Feature{},
}, },
{ {
name: "migration on for GCE with Beta storage provisioner annontation", name: "migration on for GCE with Beta storage provisioner annontation",
@ -583,6 +585,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin}, claimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin},
expClaimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver}, expClaimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver},
migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE}, migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
disabledDriverGates: []featuregate.Feature{},
}, },
{ {
name: "migration off for GCE", name: "migration off for GCE",
@ -591,6 +594,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin}, claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin},
expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin}, expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin},
migratedDriverGates: []featuregate.Feature{}, migratedDriverGates: []featuregate.Feature{},
disabledDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
}, },
{ {
name: "migration off for GCE removes migrated to (rollback)", name: "migration off for GCE removes migrated to (rollback)",
@ -599,6 +603,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver}, claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver},
expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin}, expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: gcePlugin},
migratedDriverGates: []featuregate.Feature{}, migratedDriverGates: []featuregate.Feature{},
disabledDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
}, },
{ {
name: "migration off for GCE removes migrated to (rollback) with Beta storage provisioner annontation", name: "migration off for GCE removes migrated to (rollback) with Beta storage provisioner annontation",
@ -607,6 +612,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver}, claimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin, pvutil.AnnMigratedTo: gceDriver},
expClaimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin}, expClaimAnnotations: map[string]string{pvutil.AnnBetaStorageProvisioner: gcePlugin},
migratedDriverGates: []featuregate.Feature{}, migratedDriverGates: []featuregate.Feature{},
disabledDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
}, },
{ {
name: "migration on for GCE other plugin not affected", name: "migration on for GCE other plugin not affected",
@ -615,6 +621,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: testPlugin}, claimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: testPlugin},
expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: testPlugin}, expClaimAnnotations: map[string]string{pvutil.AnnStorageProvisioner: testPlugin},
migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE}, migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
disabledDriverGates: []featuregate.Feature{},
}, },
{ {
name: "not dynamically provisioned migration off for GCE", name: "not dynamically provisioned migration off for GCE",
@ -623,6 +630,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{}, claimAnnotations: map[string]string{},
expClaimAnnotations: map[string]string{}, expClaimAnnotations: map[string]string{},
migratedDriverGates: []featuregate.Feature{}, migratedDriverGates: []featuregate.Feature{},
disabledDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
}, },
{ {
name: "not dynamically provisioned migration on for GCE", name: "not dynamically provisioned migration on for GCE",
@ -631,6 +639,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: map[string]string{}, claimAnnotations: map[string]string{},
expClaimAnnotations: map[string]string{}, expClaimAnnotations: map[string]string{},
migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE}, migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
disabledDriverGates: []featuregate.Feature{},
}, },
{ {
name: "nil annotations migration off for GCE", name: "nil annotations migration off for GCE",
@ -639,6 +648,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: nil, claimAnnotations: nil,
expClaimAnnotations: nil, expClaimAnnotations: nil,
migratedDriverGates: []featuregate.Feature{}, migratedDriverGates: []featuregate.Feature{},
disabledDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
}, },
{ {
name: "nil annotations migration on for GCE", name: "nil annotations migration on for GCE",
@ -647,6 +657,7 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
claimAnnotations: nil, claimAnnotations: nil,
expClaimAnnotations: nil, expClaimAnnotations: nil,
migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE}, migratedDriverGates: []featuregate.Feature{features.CSIMigrationGCE},
disabledDriverGates: []featuregate.Feature{},
}, },
} }
@ -658,6 +669,9 @@ func TestAnnealMigrationAnnotations(t *testing.T) {
for _, f := range tc.migratedDriverGates { for _, f := range tc.migratedDriverGates {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, f, true)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, f, true)()
} }
for _, f := range tc.disabledDriverGates {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, f, false)()
}
if tc.volumeAnnotations != nil { if tc.volumeAnnotations != nil {
ann := tc.volumeAnnotations ann := tc.volumeAnnotations
updateMigrationAnnotationsAndFinalizers(cmpm, translator, ann, nil, false) updateMigrationAnnotationsAndFinalizers(cmpm, translator, ann, nil, false)

View File

@ -850,7 +850,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
TopologyManager: {Default: true, PreRelease: featuregate.Beta}, TopologyManager: {Default: true, PreRelease: featuregate.Beta},
StorageObjectInUseProtection: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 StorageObjectInUseProtection: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25
CSIMigration: {Default: true, PreRelease: featuregate.Beta}, CSIMigration: {Default: true, PreRelease: featuregate.Beta},
CSIMigrationGCE: {Default: false, PreRelease: featuregate.Beta}, // Off by default (requires GCE PD CSI Driver) CSIMigrationGCE: {Default: true, PreRelease: featuregate.Beta}, // On by default in 1.23 (requires GCE PD CSI Driver)
InTreePluginGCEUnregister: {Default: false, PreRelease: featuregate.Alpha}, InTreePluginGCEUnregister: {Default: false, PreRelease: featuregate.Alpha},
CSIMigrationAWS: {Default: false, PreRelease: featuregate.Beta}, // Off by default (requires AWS EBS CSI driver) CSIMigrationAWS: {Default: false, PreRelease: featuregate.Beta}, // Off by default (requires AWS EBS CSI driver)
InTreePluginAWSUnregister: {Default: false, PreRelease: featuregate.Alpha}, InTreePluginAWSUnregister: {Default: false, PreRelease: featuregate.Alpha},

View File

@ -25,7 +25,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/types"
utilfeature "k8s.io/apiserver/pkg/util/feature"
core "k8s.io/client-go/testing" core "k8s.io/client-go/testing"
featuregatetesting "k8s.io/component-base/featuregate/testing"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume"
volumetest "k8s.io/kubernetes/pkg/volume/testing" volumetest "k8s.io/kubernetes/pkg/volume/testing"
"k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util"
@ -92,6 +95,8 @@ func TestListVolumesForPod(t *testing.T) {
} }
func TestPodVolumesExist(t *testing.T) { func TestPodVolumesExist(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
defer testKubelet.Cleanup() defer testKubelet.Cleanup()
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet
@ -202,6 +207,8 @@ func TestPodVolumesExist(t *testing.T) {
} }
func TestVolumeAttachAndMountControllerDisabled(t *testing.T) { func TestVolumeAttachAndMountControllerDisabled(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
defer testKubelet.Cleanup() defer testKubelet.Cleanup()
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet
@ -257,6 +264,8 @@ func TestVolumeAttachAndMountControllerDisabled(t *testing.T) {
} }
func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) { func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
defer testKubelet.Cleanup() defer testKubelet.Cleanup()
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet
@ -342,6 +351,8 @@ func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) {
} }
func TestVolumeAttachAndMountControllerEnabled(t *testing.T) { func TestVolumeAttachAndMountControllerEnabled(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */) testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */)
defer testKubelet.Cleanup() defer testKubelet.Cleanup()
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet
@ -422,6 +433,8 @@ func TestVolumeAttachAndMountControllerEnabled(t *testing.T) {
} }
func TestVolumeUnmountAndDetachControllerEnabled(t *testing.T) { func TestVolumeUnmountAndDetachControllerEnabled(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */) testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */)
defer testKubelet.Cleanup() defer testKubelet.Cleanup()
kubelet := testKubelet.kubelet kubelet := testKubelet.kubelet

View File

@ -31,10 +31,13 @@ import (
kubetypes "k8s.io/apimachinery/pkg/types" kubetypes "k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
utilfeature "k8s.io/apiserver/pkg/util/feature"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/tools/record" "k8s.io/client-go/tools/record"
utiltesting "k8s.io/client-go/util/testing" utiltesting "k8s.io/client-go/util/testing"
featuregatetesting "k8s.io/component-base/featuregate/testing"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/kubelet/config" "k8s.io/kubernetes/pkg/kubelet/config"
"k8s.io/kubernetes/pkg/kubelet/configmap" "k8s.io/kubernetes/pkg/kubelet/configmap"
containertest "k8s.io/kubernetes/pkg/kubelet/container/testing" containertest "k8s.io/kubernetes/pkg/kubelet/container/testing"
@ -53,6 +56,8 @@ const (
) )
func TestGetMountedVolumesForPodAndGetVolumesInUse(t *testing.T) { func TestGetMountedVolumesForPodAndGetVolumesInUse(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
tests := []struct { tests := []struct {
name string name string
pvMode, podMode v1.PersistentVolumeMode pvMode, podMode v1.PersistentVolumeMode
@ -140,6 +145,8 @@ func TestGetMountedVolumesForPodAndGetVolumesInUse(t *testing.T) {
} }
func TestInitialPendingVolumesForPodAndGetVolumesInUse(t *testing.T) { func TestInitialPendingVolumesForPodAndGetVolumesInUse(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
tmpDir, err := utiltesting.MkTmpdir("volumeManagerTest") tmpDir, err := utiltesting.MkTmpdir("volumeManagerTest")
if err != nil { if err != nil {
t.Fatalf("can't make a temp dir: %v", err) t.Fatalf("can't make a temp dir: %v", err)
@ -185,6 +192,8 @@ func TestInitialPendingVolumesForPodAndGetVolumesInUse(t *testing.T) {
} }
func TestGetExtraSupplementalGroupsForPod(t *testing.T) { func TestGetExtraSupplementalGroupsForPod(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
tmpDir, err := utiltesting.MkTmpdir("volumeManagerTest") tmpDir, err := utiltesting.MkTmpdir("volumeManagerTest")
if err != nil { if err != nil {
t.Fatalf("can't make a temp dir: %v", err) t.Fatalf("can't make a temp dir: %v", err)

View File

@ -147,7 +147,7 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
timeouts = f.Timeouts timeouts = f.Timeouts
}) })
ginkgo.Describe("DynamicProvisioner [Slow]", func() { ginkgo.Describe("DynamicProvisioner [Slow] [Feature:StorageProvider]", func() {
ginkgo.It("should provision storage with different parameters", func() { ginkgo.It("should provision storage with different parameters", func() {
// This test checks that dynamic provisioning can provision a volume // This test checks that dynamic provisioning can provision a volume
@ -604,6 +604,7 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
ginkgo.Describe("DynamicProvisioner Default", func() { ginkgo.Describe("DynamicProvisioner Default", func() {
ginkgo.It("should create and delete default persistent volumes [Slow]", func() { ginkgo.It("should create and delete default persistent volumes [Slow]", func() {
e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure") e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
e2epv.SkipIfNoDefaultStorageClass(c)
ginkgo.By("creating a claim with no annotation") ginkgo.By("creating a claim with no annotation")
test := testsuites.StorageClassTest{ test := testsuites.StorageClassTest{
@ -629,6 +630,7 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
// Modifying the default storage class can be disruptive to other tests that depend on it // Modifying the default storage class can be disruptive to other tests that depend on it
ginkgo.It("should be disabled by changing the default annotation [Serial] [Disruptive]", func() { ginkgo.It("should be disabled by changing the default annotation [Serial] [Disruptive]", func() {
e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure") e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
e2epv.SkipIfNoDefaultStorageClass(c)
scName, scErr := e2epv.GetDefaultStorageClassName(c) scName, scErr := e2epv.GetDefaultStorageClassName(c)
framework.ExpectNoError(scErr) framework.ExpectNoError(scErr)