@@ -21,7 +21,6 @@ import (
21
21
"fmt"
22
22
23
23
v1 "k8s.io/api/core/v1"
24
- utilfeature "k8s.io/apiserver/pkg/util/feature"
25
24
"k8s.io/component-base/featuregate"
26
25
csilibplugins "k8s.io/csi-translation-lib/plugins"
27
26
"k8s.io/kubernetes/pkg/features"
@@ -38,12 +37,14 @@ type PluginNameMapper interface {
38
37
// PluginManager keeps track of migrated state of in-tree plugins
39
38
type PluginManager struct {
40
39
PluginNameMapper
40
+ featureGate featuregate.FeatureGate
41
41
}
42
42
43
43
// NewPluginManager returns a new PluginManager instance
44
- func NewPluginManager (m PluginNameMapper ) PluginManager {
44
+ func NewPluginManager (m PluginNameMapper , featureGate featuregate. FeatureGate ) PluginManager {
45
45
return PluginManager {
46
46
PluginNameMapper : m ,
47
+ featureGate : featureGate ,
47
48
}
48
49
}
49
50
@@ -60,17 +61,17 @@ func (pm PluginManager) IsMigrationCompleteForPlugin(pluginName string) bool {
60
61
61
62
switch pluginName {
62
63
case csilibplugins .AWSEBSInTreePluginName :
63
- return utilfeature . DefaultFeatureGate .Enabled (features .InTreePluginAWSUnregister )
64
+ return pm . featureGate .Enabled (features .InTreePluginAWSUnregister )
64
65
case csilibplugins .GCEPDInTreePluginName :
65
- return utilfeature . DefaultFeatureGate .Enabled (features .InTreePluginGCEUnregister )
66
+ return pm . featureGate .Enabled (features .InTreePluginGCEUnregister )
66
67
case csilibplugins .AzureFileInTreePluginName :
67
- return utilfeature . DefaultFeatureGate .Enabled (features .InTreePluginAzureFileUnregister )
68
+ return pm . featureGate .Enabled (features .InTreePluginAzureFileUnregister )
68
69
case csilibplugins .AzureDiskInTreePluginName :
69
- return utilfeature . DefaultFeatureGate .Enabled (features .InTreePluginAzureDiskUnregister )
70
+ return pm . featureGate .Enabled (features .InTreePluginAzureDiskUnregister )
70
71
case csilibplugins .CinderInTreePluginName :
71
- return utilfeature . DefaultFeatureGate .Enabled (features .InTreePluginOpenStackUnregister )
72
+ return pm . featureGate .Enabled (features .InTreePluginOpenStackUnregister )
72
73
case csilibplugins .VSphereInTreePluginName :
73
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationvSphereComplete ) || utilfeature . DefaultFeatureGate .Enabled (features .InTreePluginvSphereUnregister )
74
+ return pm . featureGate .Enabled (features .CSIMigrationvSphereComplete ) || pm . featureGate .Enabled (features .InTreePluginvSphereUnregister )
74
75
default :
75
76
return false
76
77
}
@@ -80,23 +81,23 @@ func (pm PluginManager) IsMigrationCompleteForPlugin(pluginName string) bool {
80
81
// for a particular storage plugin
81
82
func (pm PluginManager ) IsMigrationEnabledForPlugin (pluginName string ) bool {
82
83
// CSIMigration feature should be enabled along with the plugin-specific one
83
- if ! utilfeature . DefaultFeatureGate .Enabled (features .CSIMigration ) {
84
+ if ! pm . featureGate .Enabled (features .CSIMigration ) {
84
85
return false
85
86
}
86
87
87
88
switch pluginName {
88
89
case csilibplugins .AWSEBSInTreePluginName :
89
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationAWS )
90
+ return pm . featureGate .Enabled (features .CSIMigrationAWS )
90
91
case csilibplugins .GCEPDInTreePluginName :
91
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationGCE )
92
+ return pm . featureGate .Enabled (features .CSIMigrationGCE )
92
93
case csilibplugins .AzureFileInTreePluginName :
93
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationAzureFile )
94
+ return pm . featureGate .Enabled (features .CSIMigrationAzureFile )
94
95
case csilibplugins .AzureDiskInTreePluginName :
95
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationAzureDisk )
96
+ return pm . featureGate .Enabled (features .CSIMigrationAzureDisk )
96
97
case csilibplugins .CinderInTreePluginName :
97
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationOpenStack )
98
+ return pm . featureGate .Enabled (features .CSIMigrationOpenStack )
98
99
case csilibplugins .VSphereInTreePluginName :
99
- return utilfeature . DefaultFeatureGate .Enabled (features .CSIMigrationvSphere )
100
+ return pm . featureGate .Enabled (features .CSIMigrationvSphere )
100
101
default :
101
102
return false
102
103
}
0 commit comments