@@ -49,9 +49,10 @@ func TestNodeExpander(t *testing.T) {
49
49
50
50
nodeResizePending := v1 .PersistentVolumeClaimNodeResizePending
51
51
var tests = []struct {
52
- name string
53
- pvc * v1.PersistentVolumeClaim
54
- pv * v1.PersistentVolume
52
+ name string
53
+ pvc * v1.PersistentVolumeClaim
54
+ pv * v1.PersistentVolume
55
+ recoverVolumeExpansionFailure bool
55
56
56
57
// desired size, defaults to pv.Spec.Capacity
57
58
desiredSize * resource.Quantity
@@ -67,9 +68,10 @@ func TestNodeExpander(t *testing.T) {
67
68
expectError bool
68
69
}{
69
70
{
70
- name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_failed" ,
71
- pvc : getTestPVC ("test-vol0" , "2G" , "1G" , "" , & nodeResizeFailed ),
72
- pv : getTestPV ("test-vol0" , "2G" ),
71
+ name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_failed" ,
72
+ pvc : getTestPVC ("test-vol0" , "2G" , "1G" , "" , & nodeResizeFailed ),
73
+ pv : getTestPV ("test-vol0" , "2G" ),
74
+ recoverVolumeExpansionFailure : true ,
73
75
74
76
expectedResizeStatus : nodeResizeFailed ,
75
77
expectResizeCall : false ,
@@ -78,41 +80,46 @@ func TestNodeExpander(t *testing.T) {
78
80
expectedStatusSize : resource .MustParse ("1G" ),
79
81
},
80
82
{
81
- name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending" ,
82
- pvc : getTestPVC ("test-vol0" , "2G" , "1G" , "2G" , & nodeResizePending ),
83
- pv : getTestPV ("test-vol0" , "2G" ),
83
+ name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending" ,
84
+ pvc : getTestPVC ("test-vol0" , "2G" , "1G" , "2G" , & nodeResizePending ),
85
+ pv : getTestPV ("test-vol0" , "2G" ),
86
+ recoverVolumeExpansionFailure : true ,
87
+
84
88
expectedResizeStatus : "" ,
85
89
expectResizeCall : true ,
86
90
assumeResizeOpAsFinished : true ,
87
91
expectFinalErrors : false ,
88
92
expectedStatusSize : resource .MustParse ("2G" ),
89
93
},
90
94
{
91
- name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, reize_op=infeasible" ,
92
- pvc : getTestPVC (volumetesting .InfeasibleNodeExpansion , "2G" , "1G" , "2G" , & nodeResizePending ),
93
- pv : getTestPV (volumetesting .InfeasibleNodeExpansion , "2G" ),
94
- expectError : true ,
95
- expectedResizeStatus : nodeResizeFailed ,
96
- expectResizeCall : true ,
97
- assumeResizeOpAsFinished : true ,
98
- expectFinalErrors : true ,
99
- expectedStatusSize : resource .MustParse ("1G" ),
95
+ name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, reize_op=infeasible" ,
96
+ pvc : getTestPVC (volumetesting .InfeasibleNodeExpansion , "2G" , "1G" , "2G" , & nodeResizePending ),
97
+ pv : getTestPV (volumetesting .InfeasibleNodeExpansion , "2G" ),
98
+ recoverVolumeExpansionFailure : false ,
99
+ expectError : true ,
100
+ expectedResizeStatus : nodeResizeFailed ,
101
+ expectResizeCall : true ,
102
+ assumeResizeOpAsFinished : true ,
103
+ expectFinalErrors : true ,
104
+ expectedStatusSize : resource .MustParse ("1G" ),
100
105
},
101
106
{
102
- name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, reize_op=failing" ,
103
- pvc : getTestPVC (volumetesting .OtherFinalNodeExpansionError , "2G" , "1G" , "2G" , & nodeResizePending ),
104
- pv : getTestPV (volumetesting .OtherFinalNodeExpansionError , "2G" ),
105
- expectError : true ,
106
- expectedResizeStatus : v1 .PersistentVolumeClaimNodeResizeInProgress ,
107
- expectResizeCall : true ,
108
- assumeResizeOpAsFinished : true ,
109
- expectFinalErrors : true ,
110
- expectedStatusSize : resource .MustParse ("1G" ),
107
+ name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, reize_op=failing" ,
108
+ pvc : getTestPVC (volumetesting .OtherFinalNodeExpansionError , "2G" , "1G" , "2G" , & nodeResizePending ),
109
+ pv : getTestPV (volumetesting .OtherFinalNodeExpansionError , "2G" ),
110
+ recoverVolumeExpansionFailure : true ,
111
+ expectError : true ,
112
+ expectedResizeStatus : v1 .PersistentVolumeClaimNodeResizeInProgress ,
113
+ expectResizeCall : true ,
114
+ assumeResizeOpAsFinished : true ,
115
+ expectFinalErrors : true ,
116
+ expectedStatusSize : resource .MustParse ("1G" ),
111
117
},
112
118
{
113
- name : "RWO volumes, pv.spec.cap = pvc.status.cap, resizeStatus='', desiredSize > actualSize" ,
114
- pvc : getTestPVC ("test-vol0" , "2G" , "2G" , "2G" , nil ),
115
- pv : getTestPV ("test-vol0" , "2G" ),
119
+ name : "RWO volumes, pv.spec.cap = pvc.status.cap, resizeStatus='', desiredSize > actualSize" ,
120
+ pvc : getTestPVC ("test-vol0" , "2G" , "2G" , "2G" , nil ),
121
+ pv : getTestPV ("test-vol0" , "2G" ),
122
+ recoverVolumeExpansionFailure : false ,
116
123
117
124
expectedResizeStatus : "" ,
118
125
expectResizeCall : false ,
@@ -121,9 +128,22 @@ func TestNodeExpander(t *testing.T) {
121
128
expectedStatusSize : resource .MustParse ("2G" ),
122
129
},
123
130
{
124
- name : "RWX volumes, pv.spec.cap = pvc.status.cap, resizeStatus='', desiredSize > actualSize" ,
125
- pvc : addAccessMode (getTestPVC ("test-vol0" , "2G" , "2G" , "2G" , nil ), v1 .ReadWriteMany ),
126
- pv : getTestPV ("test-vol0" , "2G" ),
131
+ name : "RWX volumes, pv.spec.cap = pvc.status.cap, resizeStatus='', desiredSize > actualSize" ,
132
+ pvc : addAccessMode (getTestPVC ("test-vol0" , "2G" , "2G" , "2G" , nil ), v1 .ReadWriteMany ),
133
+ pv : getTestPV ("test-vol0" , "2G" ),
134
+ recoverVolumeExpansionFailure : true ,
135
+
136
+ expectedResizeStatus : "" ,
137
+ expectResizeCall : true ,
138
+ assumeResizeOpAsFinished : true ,
139
+ expectFinalErrors : false ,
140
+ expectedStatusSize : resource .MustParse ("2G" ),
141
+ },
142
+ {
143
+ name : "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, featuregate=disabled" ,
144
+ pvc : getTestPVC ("test-vol0" , "2G" , "1G" , "2G" , & nodeResizePending ),
145
+ pv : getTestPV ("test-vol0" , "2G" ),
146
+ recoverVolumeExpansionFailure : false ,
127
147
128
148
expectedResizeStatus : "" ,
129
149
expectResizeCall : true ,
@@ -136,7 +156,7 @@ func TestNodeExpander(t *testing.T) {
136
156
for i := range tests {
137
157
test := tests [i ]
138
158
t .Run (test .name , func (t * testing.T ) {
139
- featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .RecoverVolumeExpansionFailure , true )
159
+ featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .RecoverVolumeExpansionFailure , test . recoverVolumeExpansionFailure )
140
160
volumePluginMgr , fakePlugin := volumetesting .GetTestKubeletVolumePluginMgr (t )
141
161
142
162
pvc := test .pvc
0 commit comments