Skip to content

Commit cdbea02

Browse files
committed
Mark NodeExpansion finsihed without featuregate check
1 parent 69e0af3 commit cdbea02

File tree

2 files changed

+54
-35
lines changed

2 files changed

+54
-35
lines changed

pkg/volume/util/operationexecutor/node_expander_test.go

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ func TestNodeExpander(t *testing.T) {
4949

5050
nodeResizePending := v1.PersistentVolumeClaimNodeResizePending
5151
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
5556

5657
// desired size, defaults to pv.Spec.Capacity
5758
desiredSize *resource.Quantity
@@ -67,9 +68,10 @@ func TestNodeExpander(t *testing.T) {
6768
expectError bool
6869
}{
6970
{
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,
7375

7476
expectedResizeStatus: nodeResizeFailed,
7577
expectResizeCall: false,
@@ -78,41 +80,46 @@ func TestNodeExpander(t *testing.T) {
7880
expectedStatusSize: resource.MustParse("1G"),
7981
},
8082
{
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+
8488
expectedResizeStatus: "",
8589
expectResizeCall: true,
8690
assumeResizeOpAsFinished: true,
8791
expectFinalErrors: false,
8892
expectedStatusSize: resource.MustParse("2G"),
8993
},
9094
{
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"),
100105
},
101106
{
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"),
111117
},
112118
{
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,
116123

117124
expectedResizeStatus: "",
118125
expectResizeCall: false,
@@ -121,9 +128,22 @@ func TestNodeExpander(t *testing.T) {
121128
expectedStatusSize: resource.MustParse("2G"),
122129
},
123130
{
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,
127147

128148
expectedResizeStatus: "",
129149
expectResizeCall: true,
@@ -136,7 +156,7 @@ func TestNodeExpander(t *testing.T) {
136156
for i := range tests {
137157
test := tests[i]
138158
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)
140160
volumePluginMgr, fakePlugin := volumetesting.GetTestKubeletVolumePluginMgr(t)
141161

142162
pvc := test.pvc

pkg/volume/util/resize_util.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ func MarkNodeExpansionFinishedWithRecovery(
244244

245245
newPVC.Status.Capacity[v1.ResourceStorage] = newSize
246246

247-
// if RecoverVolumeExpansionFailure is enabled, we need to reset ResizeStatus back to nil
248247
allocatedResourceStatusMap := newPVC.Status.AllocatedResourceStatuses
249248
delete(allocatedResourceStatusMap, v1.ResourceStorage)
250249
if len(allocatedResourceStatusMap) == 0 {

0 commit comments

Comments
 (0)