Skip to content

Commit 7d5eb68

Browse files
Merge pull request #126108 from gnufied/changes-volume-recovery
Reduce state changes when expansion fails and mark certain failures as infeasible Kubernetes-commit: 107f6214626c2c6c42aa11141e4572c02e4daff7
2 parents 871340c + 8962de2 commit 7d5eb68

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

core/v1/types.go

+20-5
Original file line numberDiff line numberDiff line change
@@ -599,15 +599,29 @@ type TypedObjectReference struct {
599599
Namespace *string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"`
600600
}
601601

602-
// PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
602+
// PersistentVolumeClaimConditionType defines the condition of PV claim.
603+
// Valid values are:
604+
// - "Resizing", "FileSystemResizePending"
605+
//
606+
// If RecoverVolumeExpansionFailure feature gate is enabled, then following additional values can be expected:
607+
// - "ControllerResizeError", "NodeResizeError"
608+
//
609+
// If VolumeAttributesClass feature gate is enabled, then following additional values can be expected:
610+
// - "ModifyVolumeError", "ModifyingVolume"
603611
type PersistentVolumeClaimConditionType string
604612

613+
// These are valid conditions of PVC
605614
const (
606615
// PersistentVolumeClaimResizing - a user trigger resize of pvc has been started
607616
PersistentVolumeClaimResizing PersistentVolumeClaimConditionType = "Resizing"
608617
// PersistentVolumeClaimFileSystemResizePending - controller resize is finished and a file system resize is pending on node
609618
PersistentVolumeClaimFileSystemResizePending PersistentVolumeClaimConditionType = "FileSystemResizePending"
610619

620+
// PersistentVolumeClaimControllerResizeError indicates an error while resizing volume for size in the controller
621+
PersistentVolumeClaimControllerResizeError PersistentVolumeClaimConditionType = "ControllerResizeError"
622+
// PersistentVolumeClaimNodeResizeError indicates an error while resizing volume for size in the node.
623+
PersistentVolumeClaimNodeResizeError PersistentVolumeClaimConditionType = "NodeResizeError"
624+
611625
// Applying the target VolumeAttributesClass encountered an error
612626
PersistentVolumeClaimVolumeModifyVolumeError PersistentVolumeClaimConditionType = "ModifyVolumeError"
613627
// Volume is being modified
@@ -624,18 +638,19 @@ const (
624638
// State set when resize controller starts resizing the volume in control-plane.
625639
PersistentVolumeClaimControllerResizeInProgress ClaimResourceStatus = "ControllerResizeInProgress"
626640

627-
// State set when resize has failed in resize controller with a terminal error.
641+
// State set when resize has failed in resize controller with a terminal unrecoverable error.
628642
// Transient errors such as timeout should not set this status and should leave allocatedResourceStatus
629643
// unmodified, so as resize controller can resume the volume expansion.
630-
PersistentVolumeClaimControllerResizeFailed ClaimResourceStatus = "ControllerResizeFailed"
644+
PersistentVolumeClaimControllerResizeInfeasible ClaimResourceStatus = "ControllerResizeInfeasible"
631645

632646
// State set when resize controller has finished resizing the volume but further resizing of volume
633647
// is needed on the node.
634648
PersistentVolumeClaimNodeResizePending ClaimResourceStatus = "NodeResizePending"
635649
// State set when kubelet starts resizing the volume.
636650
PersistentVolumeClaimNodeResizeInProgress ClaimResourceStatus = "NodeResizeInProgress"
637-
// State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed
638-
PersistentVolumeClaimNodeResizeFailed ClaimResourceStatus = "NodeResizeFailed"
651+
// State set when resizing has failed in kubelet with a terminal unrecoverable error. Transient errors
652+
// shouldn't set this status
653+
PersistentVolumeClaimNodeResizeInfeasible ClaimResourceStatus = "NodeResizeInfeasible"
639654
)
640655

641656
// +enum

0 commit comments

Comments
 (0)