Rename ReizeFailed conditions to ResizeInfeasible
This commit is contained in:
		| @@ -572,18 +572,19 @@ const ( | |||||||
| 	// State set when resize controller starts resizing the volume in control-plane | 	// State set when resize controller starts resizing the volume in control-plane | ||||||
| 	PersistentVolumeClaimControllerResizeInProgress ClaimResourceStatus = "ControllerResizeInProgress" | 	PersistentVolumeClaimControllerResizeInProgress ClaimResourceStatus = "ControllerResizeInProgress" | ||||||
|  |  | ||||||
| 	// State set when resize has failed in resize controller with a terminal error. | 	// State set when resize has failed in resize controller with a terminal unrecoverable error. | ||||||
| 	// Transient errors such as timeout should not set this status and should leave allocatedResourceStatus | 	// Transient errors such as timeout should not set this status and should leave allocatedResourceStatus | ||||||
| 	// unmodified, so as resize controller can resume the volume expansion. | 	// unmodified, so as resize controller can resume the volume expansion. | ||||||
| 	PersistentVolumeClaimControllerResizeFailed ClaimResourceStatus = "ControllerResizeFailed" | 	PersistentVolumeClaimControllerResizeInfeasible ClaimResourceStatus = "ControllerResizeInfeasible" | ||||||
|  |  | ||||||
| 	// State set when resize controller has finished resizing the volume but further resizing of volume | 	// State set when resize controller has finished resizing the volume but further resizing of volume | ||||||
| 	// is needed on the node. | 	// is needed on the node. | ||||||
| 	PersistentVolumeClaimNodeResizePending ClaimResourceStatus = "NodeResizePending" | 	PersistentVolumeClaimNodeResizePending ClaimResourceStatus = "NodeResizePending" | ||||||
| 	// State set when kubelet starts resizing the volume. | 	// State set when kubelet starts resizing the volume. | ||||||
| 	PersistentVolumeClaimNodeResizeInProgress ClaimResourceStatus = "NodeResizeInProgress" | 	PersistentVolumeClaimNodeResizeInProgress ClaimResourceStatus = "NodeResizeInProgress" | ||||||
| 	// State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed | 	// State set when resizing has failed in kubelet with a terminal unrecoverable error. Transient errors | ||||||
| 	PersistentVolumeClaimNodeResizeFailed ClaimResourceStatus = "NodeResizeFailed" | 	// shouldn't set this status | ||||||
|  | 	PersistentVolumeClaimNodeResizeInfeasible ClaimResourceStatus = "NodeResizeInfeasible" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // +enum | // +enum | ||||||
|   | |||||||
| @@ -2481,10 +2481,10 @@ func validatePersistentVolumeClaimResourceKey(value string, fldPath *field.Path) | |||||||
| } | } | ||||||
|  |  | ||||||
| var resizeStatusSet = sets.New(core.PersistentVolumeClaimControllerResizeInProgress, | var resizeStatusSet = sets.New(core.PersistentVolumeClaimControllerResizeInProgress, | ||||||
| 	core.PersistentVolumeClaimControllerResizeFailed, | 	core.PersistentVolumeClaimControllerResizeInfeasible, | ||||||
| 	core.PersistentVolumeClaimNodeResizePending, | 	core.PersistentVolumeClaimNodeResizePending, | ||||||
| 	core.PersistentVolumeClaimNodeResizeInProgress, | 	core.PersistentVolumeClaimNodeResizeInProgress, | ||||||
| 	core.PersistentVolumeClaimNodeResizeFailed) | 	core.PersistentVolumeClaimNodeResizeInfeasible) | ||||||
|  |  | ||||||
| // ValidatePersistentVolumeClaimStatusUpdate validates an update to status of a PersistentVolumeClaim | // ValidatePersistentVolumeClaimStatusUpdate validates an update to status of a PersistentVolumeClaim | ||||||
| func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *core.PersistentVolumeClaim, validationOpts PersistentVolumeClaimSpecValidationOptions) field.ErrorList { | func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *core.PersistentVolumeClaim, validationOpts PersistentVolumeClaimSpecValidationOptions) field.ErrorList { | ||||||
|   | |||||||
| @@ -18971,7 +18971,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 	}, core.PersistentVolumeClaimStatus{ | 	}, core.PersistentVolumeClaimStatus{ | ||||||
| 		AllocatedResourceStatuses: map[core.ResourceName]core.ClaimResourceStatus{ | 		AllocatedResourceStatuses: map[core.ResourceName]core.ClaimResourceStatus{ | ||||||
| 			core.ResourceStorage: core.PersistentVolumeClaimControllerResizeFailed, | 			core.ResourceStorage: core.PersistentVolumeClaimControllerResizeInfeasible, | ||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| @@ -19001,7 +19001,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 	}, core.PersistentVolumeClaimStatus{ | 	}, core.PersistentVolumeClaimStatus{ | ||||||
| 		AllocatedResourceStatuses: map[core.ResourceName]core.ClaimResourceStatus{ | 		AllocatedResourceStatuses: map[core.ResourceName]core.ClaimResourceStatus{ | ||||||
| 			core.ResourceStorage: core.PersistentVolumeClaimNodeResizeFailed, | 			core.ResourceStorage: core.PersistentVolumeClaimNodeResizeInfeasible, | ||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| @@ -19045,7 +19045,7 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { | |||||||
| 			validResizeKeyCustom: resource.MustParse("10Gi"), | 			validResizeKeyCustom: resource.MustParse("10Gi"), | ||||||
| 		}, | 		}, | ||||||
| 		AllocatedResourceStatuses: map[core.ResourceName]core.ClaimResourceStatus{ | 		AllocatedResourceStatuses: map[core.ResourceName]core.ClaimResourceStatus{ | ||||||
| 			core.ResourceStorage: core.PersistentVolumeClaimControllerResizeFailed, | 			core.ResourceStorage: core.PersistentVolumeClaimControllerResizeInfeasible, | ||||||
| 			validResizeKeyCustom: core.PersistentVolumeClaimControllerResizeInProgress, | 			validResizeKeyCustom: core.PersistentVolumeClaimControllerResizeInProgress, | ||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
|   | |||||||
| @@ -1718,7 +1718,7 @@ func (og *operationGenerator) expandAndRecoverFunction(resizeOpts inTreeResizeOp | |||||||
| 		case v1.PersistentVolumeClaimControllerResizeInProgress, | 		case v1.PersistentVolumeClaimControllerResizeInProgress, | ||||||
| 			v1.PersistentVolumeClaimNodeResizePending, | 			v1.PersistentVolumeClaimNodeResizePending, | ||||||
| 			v1.PersistentVolumeClaimNodeResizeInProgress, | 			v1.PersistentVolumeClaimNodeResizeInProgress, | ||||||
| 			v1.PersistentVolumeClaimNodeResizeFailed: | 			v1.PersistentVolumeClaimNodeResizeInfeasible: | ||||||
| 			if allocatedSize != nil { | 			if allocatedSize != nil { | ||||||
| 				newSize = *allocatedSize | 				newSize = *allocatedSize | ||||||
| 			} | 			} | ||||||
| @@ -1742,14 +1742,14 @@ func (og *operationGenerator) expandAndRecoverFunction(resizeOpts inTreeResizeOp | |||||||
| 			// we don't need to do any work. We could be here because of a spurious update event. | 			// we don't need to do any work. We could be here because of a spurious update event. | ||||||
| 			// This is case #1 | 			// This is case #1 | ||||||
| 			return resizeResponse | 			return resizeResponse | ||||||
| 		case v1.PersistentVolumeClaimNodeResizeFailed: | 		case v1.PersistentVolumeClaimNodeResizeInfeasible: | ||||||
| 			// This is case#3 | 			// This is case#3 | ||||||
| 			pvc, err = og.markForPendingNodeExpansion(pvc, pv) | 			pvc, err = og.markForPendingNodeExpansion(pvc, pv) | ||||||
| 			resizeResponse.pvc = pvc | 			resizeResponse.pvc = pvc | ||||||
| 			resizeResponse.err = err | 			resizeResponse.err = err | ||||||
| 			return resizeResponse | 			return resizeResponse | ||||||
| 		case v1.PersistentVolumeClaimControllerResizeInProgress, | 		case v1.PersistentVolumeClaimControllerResizeInProgress, | ||||||
| 			v1.PersistentVolumeClaimControllerResizeFailed: | 			v1.PersistentVolumeClaimControllerResizeInfeasible: | ||||||
| 			// This is case#2 or it could also be case#4 when user manually shrunk the PVC | 			// This is case#2 or it could also be case#4 when user manually shrunk the PVC | ||||||
| 			// after expanding it. | 			// after expanding it. | ||||||
| 			if allocatedSize != nil { | 			if allocatedSize != nil { | ||||||
|   | |||||||
| @@ -238,7 +238,7 @@ func MarkFSResizeFinished( | |||||||
| // of volumes which are in failed state. | // of volumes which are in failed state. | ||||||
| func MarkNodeExpansionFailed(pvc *v1.PersistentVolumeClaim, kubeClient clientset.Interface) (*v1.PersistentVolumeClaim, error) { | func MarkNodeExpansionFailed(pvc *v1.PersistentVolumeClaim, kubeClient clientset.Interface) (*v1.PersistentVolumeClaim, error) { | ||||||
| 	newPVC := pvc.DeepCopy() | 	newPVC := pvc.DeepCopy() | ||||||
| 	newPVC = mergeStorageResourceStatus(newPVC, v1.PersistentVolumeClaimNodeResizeFailed) | 	newPVC = mergeStorageResourceStatus(newPVC, v1.PersistentVolumeClaimNodeResizeInfeasible) | ||||||
|  |  | ||||||
| 	patchBytes, err := createPVCPatch(pvc, newPVC, false /* addResourceVersionCheck */) | 	patchBytes, err := createPVCPatch(pvc, newPVC, false /* addResourceVersionCheck */) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
| @@ -166,8 +166,8 @@ func TestResizeFunctions(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "mark fs resize, when other resource statuses are present", | 			name: "mark fs resize, when other resource statuses are present", | ||||||
| 			pvc:  basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeFailed).get(), | 			pvc:  basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeInfeasible).get(), | ||||||
| 			expectedPVC: basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeFailed). | 			expectedPVC: basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeInfeasible). | ||||||
| 				withStorageResourceStatus(v1.PersistentVolumeClaimNodeResizePending).get(), | 				withStorageResourceStatus(v1.PersistentVolumeClaimNodeResizePending).get(), | ||||||
| 			testFunc: func(pvc *v1.PersistentVolumeClaim, c clientset.Interface, _ resource.Quantity) (*v1.PersistentVolumeClaim, error) { | 			testFunc: func(pvc *v1.PersistentVolumeClaim, c clientset.Interface, _ resource.Quantity) (*v1.PersistentVolumeClaim, error) { | ||||||
| 				return MarkForFSResize(pvc, c) | 				return MarkForFSResize(pvc, c) | ||||||
| @@ -183,9 +183,9 @@ func TestResizeFunctions(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "mark resize finished", | 			name: "mark resize finished", | ||||||
| 			pvc: basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeFailed). | 			pvc: basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeInfeasible). | ||||||
| 				withStorageResourceStatus(v1.PersistentVolumeClaimNodeResizePending).get(), | 				withStorageResourceStatus(v1.PersistentVolumeClaimNodeResizePending).get(), | ||||||
| 			expectedPVC: basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeFailed). | 			expectedPVC: basePVC.withResourceStatus(v1.ResourceCPU, v1.PersistentVolumeClaimControllerResizeInfeasible). | ||||||
| 				withStorageResourceStatus("").get(), | 				withStorageResourceStatus("").get(), | ||||||
| 			testFunc: func(pvc *v1.PersistentVolumeClaim, i clientset.Interface, q resource.Quantity) (*v1.PersistentVolumeClaim, error) { | 			testFunc: func(pvc *v1.PersistentVolumeClaim, i clientset.Interface, q resource.Quantity) (*v1.PersistentVolumeClaim, error) { | ||||||
| 				return MarkFSResizeFinished(pvc, q, i) | 				return MarkFSResizeFinished(pvc, q, i) | ||||||
|   | |||||||
| @@ -624,18 +624,19 @@ const ( | |||||||
| 	// State set when resize controller starts resizing the volume in control-plane. | 	// State set when resize controller starts resizing the volume in control-plane. | ||||||
| 	PersistentVolumeClaimControllerResizeInProgress ClaimResourceStatus = "ControllerResizeInProgress" | 	PersistentVolumeClaimControllerResizeInProgress ClaimResourceStatus = "ControllerResizeInProgress" | ||||||
|  |  | ||||||
| 	// State set when resize has failed in resize controller with a terminal error. | 	// State set when resize has failed in resize controller with a terminal unrecoverable error. | ||||||
| 	// Transient errors such as timeout should not set this status and should leave allocatedResourceStatus | 	// Transient errors such as timeout should not set this status and should leave allocatedResourceStatus | ||||||
| 	// unmodified, so as resize controller can resume the volume expansion. | 	// unmodified, so as resize controller can resume the volume expansion. | ||||||
| 	PersistentVolumeClaimControllerResizeFailed ClaimResourceStatus = "ControllerResizeFailed" | 	PersistentVolumeClaimControllerResizeInfeasible ClaimResourceStatus = "ControllerResizeInfeasible" | ||||||
|  |  | ||||||
| 	// State set when resize controller has finished resizing the volume but further resizing of volume | 	// State set when resize controller has finished resizing the volume but further resizing of volume | ||||||
| 	// is needed on the node. | 	// is needed on the node. | ||||||
| 	PersistentVolumeClaimNodeResizePending ClaimResourceStatus = "NodeResizePending" | 	PersistentVolumeClaimNodeResizePending ClaimResourceStatus = "NodeResizePending" | ||||||
| 	// State set when kubelet starts resizing the volume. | 	// State set when kubelet starts resizing the volume. | ||||||
| 	PersistentVolumeClaimNodeResizeInProgress ClaimResourceStatus = "NodeResizeInProgress" | 	PersistentVolumeClaimNodeResizeInProgress ClaimResourceStatus = "NodeResizeInProgress" | ||||||
| 	// State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed | 	// State set when resizing has failed in kubelet with a terminal unrecoverable error. Transient errors | ||||||
| 	PersistentVolumeClaimNodeResizeFailed ClaimResourceStatus = "NodeResizeFailed" | 	// shouldn't set this status | ||||||
|  | 	PersistentVolumeClaimNodeResizeInfeasible ClaimResourceStatus = "NodeResizeInfeasible" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // +enum | // +enum | ||||||
|   | |||||||
| @@ -411,7 +411,7 @@ var _ = utils.SIGDescribe("CSI Mock volume expansion", func() { | |||||||
| 				pvcRequestSize:          "11Gi", // expansion to 11Gi will cause expansion to fail on controller | 				pvcRequestSize:          "11Gi", // expansion to 11Gi will cause expansion to fail on controller | ||||||
| 				allocatedResource:       "11Gi", | 				allocatedResource:       "11Gi", | ||||||
| 				simulatedCSIDriverError: expansionFailedOnController, | 				simulatedCSIDriverError: expansionFailedOnController, | ||||||
| 				expectedResizeStatus:    v1.PersistentVolumeClaimControllerResizeFailed, | 				expectedResizeStatus:    v1.PersistentVolumeClaimControllerResizeInfeasible, | ||||||
| 				recoverySize:            resource.MustParse("4Gi"), | 				recoverySize:            resource.MustParse("4Gi"), | ||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| @@ -419,7 +419,7 @@ var _ = utils.SIGDescribe("CSI Mock volume expansion", func() { | |||||||
| 				pvcRequestSize:          "9Gi", // expansion to 9Gi will cause expansion to fail on node | 				pvcRequestSize:          "9Gi", // expansion to 9Gi will cause expansion to fail on node | ||||||
| 				allocatedResource:       "9Gi", | 				allocatedResource:       "9Gi", | ||||||
| 				simulatedCSIDriverError: expansionFailedOnNode, | 				simulatedCSIDriverError: expansionFailedOnNode, | ||||||
| 				expectedResizeStatus:    v1.PersistentVolumeClaimNodeResizeFailed, | 				expectedResizeStatus:    v1.PersistentVolumeClaimNodeResizeInfeasible, | ||||||
| 				recoverySize:            resource.MustParse("5Gi"), | 				recoverySize:            resource.MustParse("5Gi"), | ||||||
| 			}, | 			}, | ||||||
| 		} | 		} | ||||||
| @@ -500,7 +500,7 @@ func validateRecoveryBehaviour(ctx context.Context, pvc *v1.PersistentVolumeClai | |||||||
| 	// if expansion succeeded on controller but failed on the node | 	// if expansion succeeded on controller but failed on the node | ||||||
| 	if test.simulatedCSIDriverError == expansionFailedOnNode { | 	if test.simulatedCSIDriverError == expansionFailedOnNode { | ||||||
| 		ginkgo.By("Wait for expansion to fail on node again") | 		ginkgo.By("Wait for expansion to fail on node again") | ||||||
| 		err = waitForResizeStatus(pvc, m.cs, v1.PersistentVolumeClaimNodeResizeFailed) | 		err = waitForResizeStatus(pvc, m.cs, v1.PersistentVolumeClaimNodeResizeInfeasible) | ||||||
| 		framework.ExpectNoError(err, "While waiting for resize status to be set to expansion-failed-on-node") | 		framework.ExpectNoError(err, "While waiting for resize status to be set to expansion-failed-on-node") | ||||||
|  |  | ||||||
| 		ginkgo.By("verify allocated resources after recovery") | 		ginkgo.By("verify allocated resources after recovery") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Hemant Kumar
					Hemant Kumar