mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 20:42:26 +00:00
Rename ReizeFailed conditions to ResizeInfeasible
This commit is contained in:
parent
cb1fa3fd73
commit
49e82fd120
@ -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")
|
||||||
|
Loading…
Reference in New Issue
Block a user