diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 3bcb71e6891..ef988830375 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -160,21 +160,6 @@ const ( // Enable nodes to exclude themselves from network disruption checks NodeDisruptionExclusion featuregate.Feature = "NodeDisruptionExclusion" - // owner: @saad-ali - // alpha: v1.12 - // beta: v1.14 - // GA: v1.18 - // Enable all logic related to the CSIDriver API object in storage.k8s.io - CSIDriverRegistry featuregate.Feature = "CSIDriverRegistry" - - // owner: @screeley44 - // alpha: v1.9 - // beta: v1.13 - // ga: v1.18 - // - // Enable Block volume support in containers. - BlockVolume featuregate.Feature = "BlockVolume" - // owner: @pospispa // GA: v1.11 // @@ -236,14 +221,6 @@ const ( // while making decisions. BalanceAttachedNodeVolumes featuregate.Feature = "BalanceAttachedNodeVolumes" - // owner: @vladimirvivien - // alpha: v1.11 - // beta: v1.14 - // ga: v1.18 - // - // Enables CSI to use raw block storage volumes - CSIBlockVolume featuregate.Feature = "CSIBlockVolume" - // owner: @pohly // alpha: v1.14 // beta: v1.16 @@ -710,8 +687,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS TopologyManager: {Default: true, PreRelease: featuregate.Beta}, ServiceNodeExclusion: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.22 NodeDisruptionExclusion: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.22 - CSIDriverRegistry: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.20 - BlockVolume: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.20 StorageObjectInUseProtection: {Default: true, PreRelease: featuregate.GA}, SupportPodPidsLimit: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.23 SupportNodePidsLimit: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.23 @@ -736,7 +711,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS VolumeSubpath: {Default: true, PreRelease: featuregate.GA}, ConfigurableFSGroupPolicy: {Default: true, PreRelease: featuregate.Beta}, BalanceAttachedNodeVolumes: {Default: false, PreRelease: featuregate.Alpha}, - CSIBlockVolume: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.20 CSIInlineVolume: {Default: true, PreRelease: featuregate.Beta}, CSIStorageCapacity: {Default: false, PreRelease: featuregate.Alpha}, CSIServiceAccountToken: {Default: false, PreRelease: featuregate.Alpha}, diff --git a/pkg/volume/csi/csi_block.go b/pkg/volume/csi/csi_block.go index 41fdd1f081f..2f1d542237a 100644 --- a/pkg/volume/csi/csi_block.go +++ b/pkg/volume/csi/csi_block.go @@ -256,9 +256,6 @@ func (m *csiBlockMapper) publishVolumeForBlock( // SetUpDevice ensures the device is attached returns path where the device is located. func (m *csiBlockMapper) SetUpDevice() (string, error) { - if !m.plugin.blockEnabled { - return "", errors.New("CSIBlockVolume feature not enabled") - } klog.V(4).Infof(log("blockMapper.SetUpDevice called")) // Get csiSource from spec @@ -319,9 +316,6 @@ func (m *csiBlockMapper) SetUpDevice() (string, error) { } func (m *csiBlockMapper) MapPodDevice() (string, error) { - if !m.plugin.blockEnabled { - return "", errors.New("CSIBlockVolume feature not enabled") - } klog.V(4).Infof(log("blockMapper.MapPodDevice called")) // Get csiSource from spec @@ -422,10 +416,6 @@ func (m *csiBlockMapper) unstageVolumeForBlock(ctx context.Context, csi csiClien // TearDownDevice removes traces of the SetUpDevice. func (m *csiBlockMapper) TearDownDevice(globalMapPath, devicePath string) error { - if !m.plugin.blockEnabled { - return errors.New("CSIBlockVolume feature not enabled") - } - ctx, cancel := createCSIOperationContext(m.spec, csiTimeout) defer cancel() @@ -489,9 +479,6 @@ func (m *csiBlockMapper) cleanupOrphanDeviceFiles() error { // UnmapPodDevice unmaps the block device path. func (m *csiBlockMapper) UnmapPodDevice() error { - if !m.plugin.blockEnabled { - return errors.New("CSIBlockVolume feature not enabled") - } publishPath := m.getPublishPath() csiClient, err := m.csiClientGetter.Get() diff --git a/pkg/volume/csi/csi_block_test.go b/pkg/volume/csi/csi_block_test.go index ab59653d71b..485998e738a 100644 --- a/pkg/volume/csi/csi_block_test.go +++ b/pkg/volume/csi/csi_block_test.go @@ -30,10 +30,7 @@ import ( storagev1 "k8s.io/api/storage/v1" meta "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilfeature "k8s.io/apiserver/pkg/util/feature" fakeclient "k8s.io/client-go/kubernetes/fake" - featuregatetesting "k8s.io/component-base/featuregate/testing" - "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/volume" ) @@ -54,8 +51,6 @@ func prepareBlockMapperTest(plug *csiPlugin, specVolumeName string, t *testing.T } func TestBlockMapperGetGlobalMapPath(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -95,8 +90,6 @@ func TestBlockMapperGetGlobalMapPath(t *testing.T) { } func TestBlockMapperGetStagingPath(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -132,8 +125,6 @@ func TestBlockMapperGetStagingPath(t *testing.T) { } func TestBlockMapperGetPublishPath(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -169,8 +160,6 @@ func TestBlockMapperGetPublishPath(t *testing.T) { } func TestBlockMapperGetDeviceMapPath(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -210,8 +199,6 @@ func TestBlockMapperGetDeviceMapPath(t *testing.T) { } func TestBlockMapperSetupDevice(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -251,8 +238,6 @@ func TestBlockMapperSetupDevice(t *testing.T) { } func TestBlockMapperSetupDeviceError(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -299,8 +284,6 @@ func TestBlockMapperSetupDeviceError(t *testing.T) { } func TestBlockMapperMapPodDevice(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -346,8 +329,6 @@ func TestBlockMapperMapPodDevice(t *testing.T) { } func TestBlockMapperMapPodDeviceNotSupportAttach(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - fakeClient := fakeclient.NewSimpleClientset() attachRequired := false fakeDriver := &storagev1.CSIDriver{ @@ -387,8 +368,6 @@ func TestBlockMapperMapPodDeviceNotSupportAttach(t *testing.T) { } func TestBlockMapperTearDownDevice(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -447,8 +426,6 @@ func TestBlockMapperTearDownDevice(t *testing.T) { } func TestVolumeSetupTeardown(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - // Follow volume setup + teardown sequences at top of cs_block.go and set up / clean up one CSI block device. // Focus on testing that there were no leftover files present after the cleanup. diff --git a/pkg/volume/csi/csi_plugin.go b/pkg/volume/csi/csi_plugin.go index 16d9d9cb9fc..85c1c1f3db1 100644 --- a/pkg/volume/csi/csi_plugin.go +++ b/pkg/volume/csi/csi_plugin.go @@ -62,7 +62,6 @@ const ( type csiPlugin struct { host volume.VolumeHost - blockEnabled bool csiDriverLister storagelisters.CSIDriverLister serviceAccountTokenGetter func(namespace, name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) volumeAttachmentLister storagelisters.VolumeAttachmentLister @@ -71,8 +70,7 @@ type csiPlugin struct { // ProbeVolumePlugins returns implemented plugins func ProbeVolumePlugins() []volume.VolumePlugin { p := &csiPlugin{ - host: nil, - blockEnabled: utilfeature.DefaultFeatureGate.Enabled(features.CSIBlockVolume), + host: nil, } return []volume.VolumePlugin{p} } @@ -663,10 +661,6 @@ func (p *csiPlugin) GetDeviceMountRefs(deviceMountPath string) ([]string, error) var _ volume.BlockVolumePlugin = &csiPlugin{} func (p *csiPlugin) NewBlockVolumeMapper(spec *volume.Spec, podRef *api.Pod, opts volume.VolumeOptions) (volume.BlockVolumeMapper, error) { - if !p.blockEnabled { - return nil, errors.New("CSIBlockVolume feature not enabled") - } - pvSource, err := getCSISourceFromSpec(spec) if err != nil { return nil, err @@ -735,10 +729,6 @@ func (p *csiPlugin) NewBlockVolumeMapper(spec *volume.Spec, podRef *api.Pod, opt } func (p *csiPlugin) NewBlockVolumeUnmapper(volName string, podUID types.UID) (volume.BlockVolumeUnmapper, error) { - if !p.blockEnabled { - return nil, errors.New("CSIBlockVolume feature not enabled") - } - klog.V(4).Infof(log("setting up block unmapper for [Spec=%v, podUID=%v]", volName, podUID)) unmapper := &csiBlockMapper{ plugin: p, @@ -760,10 +750,6 @@ func (p *csiPlugin) NewBlockVolumeUnmapper(volName string, podUID types.UID) (vo } func (p *csiPlugin) ConstructBlockVolumeSpec(podUID types.UID, specVolName, mapPath string) (*volume.Spec, error) { - if !p.blockEnabled { - return nil, errors.New("CSIBlockVolume feature not enabled") - } - klog.V(4).Infof("plugin.ConstructBlockVolumeSpec [podUID=%s, specVolName=%s, path=%s]", string(podUID), specVolName, mapPath) dataDir := getVolumeDeviceDataDir(specVolName, p.host) diff --git a/pkg/volume/csi/csi_plugin_test.go b/pkg/volume/csi/csi_plugin_test.go index 140ca4834ec..e115bb2596f 100644 --- a/pkg/volume/csi/csi_plugin_test.go +++ b/pkg/volume/csi/csi_plugin_test.go @@ -114,8 +114,6 @@ func registerFakePlugin(pluginName, endpoint string, versions []string, t *testi } func TestPluginGetPluginName(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) if plug.GetPluginName() != "kubernetes.io/csi" { @@ -124,8 +122,6 @@ func TestPluginGetPluginName(t *testing.T) { } func TestPluginGetVolumeName(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) testCases := []struct { @@ -190,7 +186,6 @@ func TestPluginGetVolumeName(t *testing.T) { } func TestPluginGetVolumeNameWithInline(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIInlineVolume, true)() modes := []storagev1.VolumeLifecycleMode{ @@ -244,7 +239,6 @@ func TestPluginGetVolumeNameWithInline(t *testing.T) { } func TestPluginCanSupport(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIInlineVolume, false)() tests := []struct { @@ -284,7 +278,6 @@ func TestPluginCanSupport(t *testing.T) { } func TestPluginCanSupportWithInline(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIInlineVolume, true)() tests := []struct { @@ -324,8 +317,6 @@ func TestPluginCanSupportWithInline(t *testing.T) { } func TestPluginConstructVolumeSpec(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -421,7 +412,6 @@ func TestPluginConstructVolumeSpec(t *testing.T) { } func TestPluginConstructVolumeSpecWithInline(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIInlineVolume, true)() testCases := []struct { @@ -562,8 +552,6 @@ func TestPluginConstructVolumeSpecWithInline(t *testing.T) { } func TestPluginNewMounter(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - tests := []struct { name string spec *volume.Spec @@ -675,7 +663,6 @@ func TestPluginNewMounter(t *testing.T) { } func TestPluginNewMounterWithInline(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIInlineVolume, true)() bothModes := []storagev1.VolumeLifecycleMode{ storagev1.VolumeLifecycleEphemeral, @@ -825,8 +812,6 @@ func TestPluginNewMounterWithInline(t *testing.T) { } func TestPluginNewUnmounter(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -874,8 +859,6 @@ func TestPluginNewUnmounter(t *testing.T) { } func TestPluginNewAttacher(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -897,8 +880,6 @@ func TestPluginNewAttacher(t *testing.T) { } func TestPluginNewDetacher(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -1167,8 +1148,6 @@ func TestPluginFindDeviceMountablePluginBySpec(t *testing.T) { } func TestPluginNewBlockMapper(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -1216,8 +1195,6 @@ func TestPluginNewBlockMapper(t *testing.T) { } func TestPluginNewUnmapper(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir) @@ -1277,8 +1254,6 @@ func TestPluginNewUnmapper(t *testing.T) { } func TestPluginConstructBlockVolumeSpec(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIBlockVolume, true)() - plug, tmpDir := newTestPlugin(t, nil) defer os.RemoveAll(tmpDir)