@@ -22,8 +22,11 @@ import (
22
22
23
23
storagev1beta1 "k8s.io/api/storage/v1beta1"
24
24
"k8s.io/apimachinery/pkg/runtime"
25
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
26
+ featuregatetesting "k8s.io/component-base/featuregate/testing"
25
27
"k8s.io/kubernetes/pkg/api/legacyscheme"
26
28
_ "k8s.io/kubernetes/pkg/apis/storage/install"
29
+ "k8s.io/kubernetes/pkg/features"
27
30
)
28
31
29
32
func roundTrip (t * testing.T , obj runtime.Object ) runtime.Object {
@@ -81,3 +84,30 @@ func TestSetDefaultAttachRequired(t *testing.T) {
81
84
t .Errorf ("Expected PodInfoOnMount to be defaulted to: %+v, got: %+v" , defaultPodInfo , outPodInfo )
82
85
}
83
86
}
87
+
88
+ func TestSetDefaultVolumeLifecycleModesEnabled (t * testing.T ) {
89
+ defer featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .CSIInlineVolume , true )()
90
+ driver := & storagev1beta1.CSIDriver {}
91
+
92
+ // field should be defaulted
93
+ defaultMode := storagev1beta1 .VolumeLifecyclePersistent
94
+ output := roundTrip (t , runtime .Object (driver )).(* storagev1beta1.CSIDriver )
95
+ outModes := output .Spec .VolumeLifecycleModes
96
+ if len (outModes ) != 1 {
97
+ t .Errorf ("Expected VolumeLifecycleModes to be defaulted to: %+v, got: %+v" , defaultMode , outModes )
98
+ } else if outModes [0 ] != defaultMode {
99
+ t .Errorf ("Expected VolumeLifecycleModes to be defaulted to: %+v, got: %+v" , defaultMode , outModes )
100
+ }
101
+ }
102
+
103
+ func TestSetDefaultVolumeLifecycleModesDisabled (t * testing.T ) {
104
+ defer featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .CSIInlineVolume , false )()
105
+ driver := & storagev1beta1.CSIDriver {}
106
+
107
+ // field should not be defaulted
108
+ output := roundTrip (t , runtime .Object (driver )).(* storagev1beta1.CSIDriver )
109
+ outModes := output .Spec .VolumeLifecycleModes
110
+ if outModes != nil {
111
+ t .Errorf ("Expected VolumeLifecycleModes to remain nil, got: %+v" , outModes )
112
+ }
113
+ }
0 commit comments