@@ -30,13 +30,16 @@ import (
30
30
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
31
31
"k8s.io/apimachinery/pkg/runtime"
32
32
"k8s.io/apimachinery/pkg/types"
33
+ "k8s.io/apimachinery/pkg/util/wait"
33
34
"k8s.io/apimachinery/pkg/watch"
34
35
utilfeature "k8s.io/apiserver/pkg/util/feature"
36
+ utilfeaturetesting "k8s.io/apiserver/pkg/util/feature/testing"
35
37
clientset "k8s.io/client-go/kubernetes"
36
38
fakeclient "k8s.io/client-go/kubernetes/fake"
37
39
core "k8s.io/client-go/testing"
38
40
utiltesting "k8s.io/client-go/util/testing"
39
41
fakecsi "k8s.io/csi-api/pkg/client/clientset/versioned/fake"
42
+ "k8s.io/kubernetes/pkg/features"
40
43
"k8s.io/kubernetes/pkg/volume"
41
44
volumetest "k8s.io/kubernetes/pkg/volume/testing"
42
45
)
@@ -202,14 +205,7 @@ func TestAttacherAttach(t *testing.T) {
202
205
}
203
206
204
207
func TestAttacherWithCSIDriver (t * testing.T ) {
205
- originalFeatures := utilfeature .DefaultFeatureGate .DeepCopy ()
206
- defer func () {
207
- utilfeature .DefaultFeatureGate = originalFeatures
208
- }()
209
- err := utilfeature .DefaultFeatureGate .Set ("CSISkipAttach=true" )
210
- if err != nil {
211
- t .Fatalf ("Failed to set CSISkipAttach=true: %s" , err )
212
- }
208
+ defer utilfeaturetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .CSIDriverRegistry , true )()
213
209
214
210
tests := []struct {
215
211
name string
@@ -277,14 +273,7 @@ func TestAttacherWithCSIDriver(t *testing.T) {
277
273
}
278
274
279
275
func TestAttacherWaitForVolumeAttachmentWithCSIDriver (t * testing.T ) {
280
- originalFeatures := utilfeature .DefaultFeatureGate .DeepCopy ()
281
- defer func () {
282
- utilfeature .DefaultFeatureGate = originalFeatures
283
- }()
284
- err := utilfeature .DefaultFeatureGate .Set ("CSISkipAttach=true" )
285
- if err != nil {
286
- t .Fatalf ("Failed to set CSISkipAttach=true: %s" , err )
287
- }
276
+ defer utilfeaturetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .CSIDriverRegistry , true )()
288
277
289
278
// In order to detect if the volume plugin would skip WaitForAttach for non-attachable drivers,
290
279
// we do not instantiate any VolumeAttachment. So if the plugin does not skip attach, WaitForVolumeAttachment
@@ -940,11 +929,11 @@ func newTestWatchPlugin(t *testing.T, csiClient *fakecsi.Clientset) (*csiPlugin,
940
929
t .Fatalf ("cannot assert plugin to be type csiPlugin" )
941
930
}
942
931
943
- for {
932
+ if utilfeature . DefaultFeatureGate . Enabled ( features . CSIDriverRegistry ) {
944
933
// Wait until the informer in CSI volume plugin has all CSIDrivers.
945
- if csiPlug . csiDriverInformer . Informer (). HasSynced ( ) {
946
- break
947
- }
934
+ wait . PollImmediate ( testInformerSyncPeriod , testInformerSyncTimeout , func () ( bool , error ) {
935
+ return csiPlug . csiDriverInformer . Informer (). HasSynced (), nil
936
+ })
948
937
}
949
938
950
939
return csiPlug , fakeWatcher , tmpDir , fakeClient
0 commit comments