Mark NodeExpansion finsihed without featuregate check

This commit is contained in:
Hemant Kumar 2025-04-23 16:10:49 -04:00
parent 74035d7b77
commit c7eb93190c
2 changed files with 54 additions and 35 deletions

View File

@ -52,6 +52,7 @@ func TestNodeExpander(t *testing.T) {
name string
pvc *v1.PersistentVolumeClaim
pv *v1.PersistentVolume
recoverVolumeExpansionFailure bool
// desired size, defaults to pv.Spec.Capacity
desiredSize *resource.Quantity
@ -70,6 +71,7 @@ func TestNodeExpander(t *testing.T) {
name: "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_failed",
pvc: getTestPVC("test-vol0", "2G", "1G", "", &nodeResizeFailed),
pv: getTestPV("test-vol0", "2G"),
recoverVolumeExpansionFailure: true,
expectedResizeStatus: nodeResizeFailed,
expectResizeCall: false,
@ -81,6 +83,8 @@ func TestNodeExpander(t *testing.T) {
name: "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending",
pvc: getTestPVC("test-vol0", "2G", "1G", "2G", &nodeResizePending),
pv: getTestPV("test-vol0", "2G"),
recoverVolumeExpansionFailure: true,
expectedResizeStatus: "",
expectResizeCall: true,
assumeResizeOpAsFinished: true,
@ -91,6 +95,7 @@ func TestNodeExpander(t *testing.T) {
name: "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, reize_op=infeasible",
pvc: getTestPVC(volumetesting.InfeasibleNodeExpansion, "2G", "1G", "2G", &nodeResizePending),
pv: getTestPV(volumetesting.InfeasibleNodeExpansion, "2G"),
recoverVolumeExpansionFailure: false,
expectError: true,
expectedResizeStatus: nodeResizeFailed,
expectResizeCall: true,
@ -102,6 +107,7 @@ func TestNodeExpander(t *testing.T) {
name: "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, reize_op=failing",
pvc: getTestPVC(volumetesting.OtherFinalNodeExpansionError, "2G", "1G", "2G", &nodeResizePending),
pv: getTestPV(volumetesting.OtherFinalNodeExpansionError, "2G"),
recoverVolumeExpansionFailure: true,
expectError: true,
expectedResizeStatus: v1.PersistentVolumeClaimNodeResizeInProgress,
expectResizeCall: true,
@ -113,6 +119,7 @@ func TestNodeExpander(t *testing.T) {
name: "RWO volumes, pv.spec.cap = pvc.status.cap, resizeStatus='', desiredSize > actualSize",
pvc: getTestPVC("test-vol0", "2G", "2G", "2G", nil),
pv: getTestPV("test-vol0", "2G"),
recoverVolumeExpansionFailure: false,
expectedResizeStatus: "",
expectResizeCall: false,
@ -124,6 +131,19 @@ func TestNodeExpander(t *testing.T) {
name: "RWX volumes, pv.spec.cap = pvc.status.cap, resizeStatus='', desiredSize > actualSize",
pvc: addAccessMode(getTestPVC("test-vol0", "2G", "2G", "2G", nil), v1.ReadWriteMany),
pv: getTestPV("test-vol0", "2G"),
recoverVolumeExpansionFailure: true,
expectedResizeStatus: "",
expectResizeCall: true,
assumeResizeOpAsFinished: true,
expectFinalErrors: false,
expectedStatusSize: resource.MustParse("2G"),
},
{
name: "pv.spec.cap > pvc.status.cap, resizeStatus=node_expansion_pending, featuregate=disabled",
pvc: getTestPVC("test-vol0", "2G", "1G", "2G", &nodeResizePending),
pv: getTestPV("test-vol0", "2G"),
recoverVolumeExpansionFailure: false,
expectedResizeStatus: "",
expectResizeCall: true,
@ -136,7 +156,7 @@ func TestNodeExpander(t *testing.T) {
for i := range tests {
test := tests[i]
t.Run(test.name, func(t *testing.T) {
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.RecoverVolumeExpansionFailure, true)
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.RecoverVolumeExpansionFailure, test.recoverVolumeExpansionFailure)
volumePluginMgr, fakePlugin := volumetesting.GetTestKubeletVolumePluginMgr(t)
pvc := test.pvc

View File

@ -244,7 +244,6 @@ func MarkNodeExpansionFinishedWithRecovery(
newPVC.Status.Capacity[v1.ResourceStorage] = newSize
// if RecoverVolumeExpansionFailure is enabled, we need to reset ResizeStatus back to nil
allocatedResourceStatusMap := newPVC.Status.AllocatedResourceStatuses
delete(allocatedResourceStatusMap, v1.ResourceStorage)
if len(allocatedResourceStatusMap) == 0 {