Merge pull request #106154 from gnufied/recover-expansion-failure-123

Recover expansion failure
This commit is contained in:
Kubernetes Prow Robot
2021-11-16 13:21:34 -08:00
committed by GitHub
45 changed files with 2875 additions and 1130 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -2665,6 +2665,9 @@ message PersistentVolumeClaimSpec {
optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
// Resources represents the minimum resources the volume should have.
// If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
// that are lower than previous value but must still be higher than capacity recorded in the
// status field of the claim.
// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
// +optional
optional ResourceRequirements resources = 2;
@@ -2735,6 +2738,26 @@ message PersistentVolumeClaimStatus {
// +patchMergeKey=type
// +patchStrategy=merge
repeated PersistentVolumeClaimCondition conditions = 4;
// The storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may
// be larger than the actual capacity when a volume expansion operation is requested.
// For storage quota, the larger value from allocatedResources and PVC.spec.resources is used.
// If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.
// If a volume expansion capacity request is lowered, allocatedResources is only
// lowered if there are no expansion operations in progress and if the actual volume capacity
// is equal or lower than the requested capacity.
// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
// +featureGate=RecoverVolumeExpansionFailure
// +optional
map<string, k8s.io.apimachinery.pkg.api.resource.Quantity> allocatedResources = 5;
// ResizeStatus stores status of resize operation.
// ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty
// string by resize controller or kubelet.
// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
// +featureGate=RecoverVolumeExpansionFailure
// +optional
optional string resizeStatus = 6;
}
// PersistentVolumeClaimTemplate is used to produce

View File

@@ -472,6 +472,9 @@ type PersistentVolumeClaimSpec struct {
// +optional
Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,4,opt,name=selector"`
// Resources represents the minimum resources the volume should have.
// If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
// that are lower than previous value but must still be higher than capacity recorded in the
// status field of the claim.
// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
// +optional
Resources ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,2,opt,name=resources"`
@@ -526,6 +529,26 @@ const (
PersistentVolumeClaimFileSystemResizePending PersistentVolumeClaimConditionType = "FileSystemResizePending"
)
// +enum
type PersistentVolumeClaimResizeStatus string
const (
// When expansion is complete, the empty string is set by resize controller or kubelet.
PersistentVolumeClaimNoExpansionInProgress PersistentVolumeClaimResizeStatus = ""
// State set when resize controller starts expanding the volume in control-plane
PersistentVolumeClaimControllerExpansionInProgress PersistentVolumeClaimResizeStatus = "ControllerExpansionInProgress"
// State set when expansion has failed in resize controller with a terminal error.
// Transient errors such as timeout should not set this status and should leave ResizeStatus
// unmodified, so as resize controller can resume the volume expansion.
PersistentVolumeClaimControllerExpansionFailed PersistentVolumeClaimResizeStatus = "ControllerExpansionFailed"
// State set when resize controller has finished expanding the volume but further expansion is needed on the node.
PersistentVolumeClaimNodeExpansionPending PersistentVolumeClaimResizeStatus = "NodeExpansionPending"
// State set when kubelet starts expanding the volume.
PersistentVolumeClaimNodeExpansionInProgress PersistentVolumeClaimResizeStatus = "NodeExpansionInProgress"
// State set when expansion has failed in kubelet with a terminal error. Transient errors don't set NodeExpansionFailed.
PersistentVolumeClaimNodeExpansionFailed PersistentVolumeClaimResizeStatus = "NodeExpansionFailed"
)
// PersistentVolumeClaimCondition contails details about state of pvc
type PersistentVolumeClaimCondition struct {
Type PersistentVolumeClaimConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=PersistentVolumeClaimConditionType"`
@@ -564,6 +587,24 @@ type PersistentVolumeClaimStatus struct {
// +patchMergeKey=type
// +patchStrategy=merge
Conditions []PersistentVolumeClaimCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,4,rep,name=conditions"`
// The storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may
// be larger than the actual capacity when a volume expansion operation is requested.
// For storage quota, the larger value from allocatedResources and PVC.spec.resources is used.
// If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.
// If a volume expansion capacity request is lowered, allocatedResources is only
// lowered if there are no expansion operations in progress and if the actual volume capacity
// is equal or lower than the requested capacity.
// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
// +featureGate=RecoverVolumeExpansionFailure
// +optional
AllocatedResources ResourceList `json:"allocatedResources,omitempty" protobuf:"bytes,5,rep,name=allocatedResources,casttype=ResourceList,castkey=ResourceName"`
// ResizeStatus stores status of resize operation.
// ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty
// string by resize controller or kubelet.
// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
// +featureGate=RecoverVolumeExpansionFailure
// +optional
ResizeStatus *PersistentVolumeClaimResizeStatus `json:"resizeStatus,omitempty" protobuf:"bytes,6,opt,name=resizeStatus,casttype=PersistentVolumeClaimResizeStatus"`
}
type PersistentVolumeAccessMode string

View File

@@ -1297,7 +1297,7 @@ var map_PersistentVolumeClaimSpec = map[string]string{
"": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes",
"accessModes": "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
"selector": "A label query over volumes to consider for binding.",
"resources": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources",
"resources": "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources",
"volumeName": "VolumeName is the binding reference to the PersistentVolume backing this claim.",
"storageClassName": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1",
"volumeMode": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.",
@@ -1310,11 +1310,13 @@ func (PersistentVolumeClaimSpec) SwaggerDoc() map[string]string {
}
var map_PersistentVolumeClaimStatus = map[string]string{
"": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.",
"phase": "Phase represents the current phase of PersistentVolumeClaim.",
"accessModes": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
"capacity": "Represents the actual resources of the underlying volume.",
"conditions": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.",
"": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.",
"phase": "Phase represents the current phase of PersistentVolumeClaim.",
"accessModes": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
"capacity": "Represents the actual resources of the underlying volume.",
"conditions": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.",
"allocatedResources": "The storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
"resizeStatus": "ResizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
}
func (PersistentVolumeClaimStatus) SwaggerDoc() map[string]string {

View File

@@ -2975,6 +2975,18 @@ func (in *PersistentVolumeClaimStatus) DeepCopyInto(out *PersistentVolumeClaimSt
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.AllocatedResources != nil {
in, out := &in.AllocatedResources, &out.AllocatedResources
*out = make(ResourceList, len(*in))
for key, val := range *in {
(*out)[key] = val.DeepCopy()
}
}
if in.ResizeStatus != nil {
in, out := &in.ResizeStatus, &out.ResizeStatus
*out = new(PersistentVolumeClaimResizeStatus)
**out = **in
}
return
}

View File

@@ -1642,39 +1642,43 @@
"reason": "523",
"message": "524"
}
]
],
"allocatedResources": {
"鐳VDɝ": "844"
},
"resizeStatus": "但Ǭľa执mÎDƃ"
}
}
],
"serviceName": "525",
"podManagementPolicy": "婵=ǻ",
"podManagementPolicy": "ƌ妜;)t罎j´A",
"updateStrategy": {
"type": "ɝÔȗ$`Ž#",
"type": "徙蔿Yċʤw俣Ǫ",
"rollingUpdate": {
"partition": -1644040574
"partition": 2000146968
}
},
"revisionHistoryLimit": -1205784111,
"minReadySeconds": 1505300966
"revisionHistoryLimit": 560461224,
"minReadySeconds": 2059121580
},
"status": {
"observedGeneration": 7422250233075984176,
"replicas": -326265137,
"readyReplicas": 1683394621,
"currentReplicas": 1862659237,
"updatedReplicas": 798811297,
"observedGeneration": -632886252136267545,
"replicas": 750655684,
"readyReplicas": -1012893423,
"currentReplicas": -1295777734,
"updatedReplicas": -1394190312,
"currentRevision": "526",
"updateRevision": "527",
"collisionCount": -1290326833,
"collisionCount": 1077247354,
"conditions": [
{
"type": "´Aƺå嫹^Ȇɀ*ǹ",
"status": "蟷尨BABȳ",
"lastTransitionTime": "2464-04-30T23:47:03Z",
"type": "堏ȑ湸睑L暱ʖ妾崗",
"status": "ij敪賻yʗHiv\u003c",
"lastTransitionTime": "2814-04-22T10:44:02Z",
"reason": "528",
"message": "529"
}
],
"availableReplicas": -1012893423
"availableReplicas": 747018016
}
}

View File

@@ -31,10 +31,10 @@ metadata:
selfLink: "5"
uid: "7"
spec:
minReadySeconds: 1505300966
podManagementPolicy: 婵=ǻ
minReadySeconds: 2059121580
podManagementPolicy: ƌ妜;)t罎j´A
replicas: 896585016
revisionHistoryLimit: -1205784111
revisionHistoryLimit: 560461224
selector:
matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@@ -1060,8 +1060,8 @@ spec:
volumePath: "103"
updateStrategy:
rollingUpdate:
partition: -1644040574
type: ɝÔȗ$`Ž#
partition: 2000146968
type: 徙蔿Yċʤw俣Ǫ
volumeClaimTemplates:
- metadata:
annotations:
@@ -1123,6 +1123,8 @@ spec:
status:
accessModes:
- v}鮩澊聝楧
allocatedResources:
鐳VDɝ: "844"
capacity:
问Ð7ɞŶJŖ)j{驟ʦcȃ: "657"
conditions:
@@ -1133,19 +1135,20 @@ spec:
status: Q¢鬣_棈Ý泷
type: ņȎZȐ樾'Ż£劾ů
phase: 忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ
resizeStatus: 但Ǭľa执mÎDƃ
status:
availableReplicas: -1012893423
collisionCount: -1290326833
availableReplicas: 747018016
collisionCount: 1077247354
conditions:
- lastTransitionTime: "2464-04-30T23:47:03Z"
- lastTransitionTime: "2814-04-22T10:44:02Z"
message: "529"
reason: "528"
status: 蟷尨BABȳ
type: ´Aƺå嫹^Ȇɀ*ǹ
currentReplicas: 1862659237
status: ij敪賻yʗHiv<
type: 堏ȑ湸睑L暱ʖ妾崗
currentReplicas: -1295777734
currentRevision: "526"
observedGeneration: 7422250233075984176
readyReplicas: 1683394621
replicas: -326265137
observedGeneration: -632886252136267545
readyReplicas: -1012893423
replicas: 750655684
updateRevision: "527"
updatedReplicas: 798811297
updatedReplicas: -1394190312

View File

@@ -1642,39 +1642,43 @@
"reason": "523",
"message": "524"
}
]
],
"allocatedResources": {
"鐳VDɝ": "844"
},
"resizeStatus": "但Ǭľa执mÎDƃ"
}
}
],
"serviceName": "525",
"podManagementPolicy": "婵=ǻ",
"podManagementPolicy": "ƌ妜;)t罎j´A",
"updateStrategy": {
"type": "ɝÔȗ$`Ž#",
"type": "徙蔿Yċʤw俣Ǫ",
"rollingUpdate": {
"partition": -1644040574
"partition": 2000146968
}
},
"revisionHistoryLimit": -1205784111,
"minReadySeconds": 1505300966
"revisionHistoryLimit": 560461224,
"minReadySeconds": 2059121580
},
"status": {
"observedGeneration": 2345785178116014414,
"replicas": 923301621,
"readyReplicas": 2036280873,
"currentReplicas": 2102009515,
"updatedReplicas": -1974512490,
"observedGeneration": -8200913189823252840,
"replicas": 1892314617,
"readyReplicas": -1893854851,
"currentReplicas": 658548230,
"updatedReplicas": -301228056,
"currentRevision": "526",
"updateRevision": "527",
"collisionCount": -1001798049,
"collisionCount": 446542989,
"conditions": [
{
"type": "Ǒl徙蔿Yċʤw",
"status": "ǹ脡È6",
"lastTransitionTime": "2744-07-10T16:37:22Z",
"type": "Ǚ3洠º襊Ł靫挕欰ij敪賻yʗHiv",
"status": "V汦\u003e蒃U",
"lastTransitionTime": "2800-08-07T22:03:04Z",
"reason": "528",
"message": "529"
}
],
"availableReplicas": -180607525
"availableReplicas": -2059927818
}
}

View File

@@ -31,10 +31,10 @@ metadata:
selfLink: "5"
uid: "7"
spec:
minReadySeconds: 1505300966
podManagementPolicy: 婵=ǻ
minReadySeconds: 2059121580
podManagementPolicy: ƌ妜;)t罎j´A
replicas: 896585016
revisionHistoryLimit: -1205784111
revisionHistoryLimit: 560461224
selector:
matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@@ -1060,8 +1060,8 @@ spec:
volumePath: "103"
updateStrategy:
rollingUpdate:
partition: -1644040574
type: ɝÔȗ$`Ž#
partition: 2000146968
type: 徙蔿Yċʤw俣Ǫ
volumeClaimTemplates:
- metadata:
annotations:
@@ -1123,6 +1123,8 @@ spec:
status:
accessModes:
- v}鮩澊聝楧
allocatedResources:
鐳VDɝ: "844"
capacity:
问Ð7ɞŶJŖ)j{驟ʦcȃ: "657"
conditions:
@@ -1133,19 +1135,20 @@ spec:
status: Q¢鬣_棈Ý泷
type: ņȎZȐ樾'Ż£劾ů
phase: 忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ
resizeStatus: 但Ǭľa执mÎDƃ
status:
availableReplicas: -180607525
collisionCount: -1001798049
availableReplicas: -2059927818
collisionCount: 446542989
conditions:
- lastTransitionTime: "2744-07-10T16:37:22Z"
- lastTransitionTime: "2800-08-07T22:03:04Z"
message: "529"
reason: "528"
status: ǹ脡È6
type: Ǒl徙蔿Yċʤw
currentReplicas: 2102009515
status: V汦>蒃U
type: Ǚ3洠º襊Ł靫挕欰ij敪賻yʗHiv
currentReplicas: 658548230
currentRevision: "526"
observedGeneration: 2345785178116014414
readyReplicas: 2036280873
replicas: 923301621
observedGeneration: -8200913189823252840
readyReplicas: -1893854851
replicas: 1892314617
updateRevision: "527"
updatedReplicas: -1974512490
updatedReplicas: -301228056

View File

@@ -1642,39 +1642,43 @@
"reason": "523",
"message": "524"
}
]
],
"allocatedResources": {
"鐳VDɝ": "844"
},
"resizeStatus": "但Ǭľa执mÎDƃ"
}
}
],
"serviceName": "525",
"podManagementPolicy": "婵=ǻ",
"podManagementPolicy": "ƌ妜;)t罎j´A",
"updateStrategy": {
"type": "ɝÔȗ$`Ž#",
"type": "徙蔿Yċʤw俣Ǫ",
"rollingUpdate": {
"partition": -1644040574
"partition": 2000146968
}
},
"revisionHistoryLimit": -1205784111,
"minReadySeconds": 1505300966
"revisionHistoryLimit": 560461224,
"minReadySeconds": 2059121580
},
"status": {
"observedGeneration": 7422250233075984176,
"replicas": -326265137,
"readyReplicas": 1683394621,
"currentReplicas": 1862659237,
"updatedReplicas": 798811297,
"observedGeneration": -632886252136267545,
"replicas": 750655684,
"readyReplicas": -1012893423,
"currentReplicas": -1295777734,
"updatedReplicas": -1394190312,
"currentRevision": "526",
"updateRevision": "527",
"collisionCount": -1290326833,
"collisionCount": 1077247354,
"conditions": [
{
"type": "´Aƺå嫹^Ȇɀ*ǹ",
"status": "蟷尨BABȳ",
"lastTransitionTime": "2464-04-30T23:47:03Z",
"type": "堏ȑ湸睑L暱ʖ妾崗",
"status": "ij敪賻yʗHiv\u003c",
"lastTransitionTime": "2814-04-22T10:44:02Z",
"reason": "528",
"message": "529"
}
],
"availableReplicas": -1012893423
"availableReplicas": 747018016
}
}

View File

@@ -31,10 +31,10 @@ metadata:
selfLink: "5"
uid: "7"
spec:
minReadySeconds: 1505300966
podManagementPolicy: 婵=ǻ
minReadySeconds: 2059121580
podManagementPolicy: ƌ妜;)t罎j´A
replicas: 896585016
revisionHistoryLimit: -1205784111
revisionHistoryLimit: 560461224
selector:
matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@@ -1060,8 +1060,8 @@ spec:
volumePath: "103"
updateStrategy:
rollingUpdate:
partition: -1644040574
type: ɝÔȗ$`Ž#
partition: 2000146968
type: 徙蔿Yċʤw俣Ǫ
volumeClaimTemplates:
- metadata:
annotations:
@@ -1123,6 +1123,8 @@ spec:
status:
accessModes:
- v}鮩澊聝楧
allocatedResources:
鐳VDɝ: "844"
capacity:
问Ð7ɞŶJŖ)j{驟ʦcȃ: "657"
conditions:
@@ -1133,19 +1135,20 @@ spec:
status: Q¢鬣_棈Ý泷
type: ņȎZȐ樾'Ż£劾ů
phase: 忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ
resizeStatus: 但Ǭľa执mÎDƃ
status:
availableReplicas: -1012893423
collisionCount: -1290326833
availableReplicas: 747018016
collisionCount: 1077247354
conditions:
- lastTransitionTime: "2464-04-30T23:47:03Z"
- lastTransitionTime: "2814-04-22T10:44:02Z"
message: "529"
reason: "528"
status: 蟷尨BABȳ
type: ´Aƺå嫹^Ȇɀ*ǹ
currentReplicas: 1862659237
status: ij敪賻yʗHiv<
type: 堏ȑ湸睑L暱ʖ妾崗
currentReplicas: -1295777734
currentRevision: "526"
observedGeneration: 7422250233075984176
readyReplicas: 1683394621
replicas: -326265137
observedGeneration: -632886252136267545
readyReplicas: -1012893423
replicas: 750655684
updateRevision: "527"
updatedReplicas: 798811297
updatedReplicas: -1394190312

View File

@@ -95,6 +95,10 @@
"reason": "34",
"message": "35"
}
]
],
"allocatedResources": {
" u衲\u003c¿燥": "98"
},
"resizeStatus": "{舁吉蓨O澘"
}
}

View File

@@ -58,6 +58,8 @@ spec:
status:
accessModes:
- l殛瓷雼浢Ü礽
allocatedResources:
' u衲<¿燥': "98"
capacity:
'{囥': "721"
conditions:
@@ -68,3 +70,4 @@ status:
status: Ka縳讋ɮ衺勽Ƙq
type: n(鲼ƳÐƣKʘńw:5塋訩塶"=
phase: gɸ=ǤÆ碛,1ZƜ/C龷Ȫ
resizeStatus: '{舁吉蓨O澘'

View File

@@ -25,10 +25,12 @@ import (
// PersistentVolumeClaimStatusApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimStatus type for use
// with apply.
type PersistentVolumeClaimStatusApplyConfiguration struct {
Phase *v1.PersistentVolumeClaimPhase `json:"phase,omitempty"`
AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
Capacity *v1.ResourceList `json:"capacity,omitempty"`
Conditions []PersistentVolumeClaimConditionApplyConfiguration `json:"conditions,omitempty"`
Phase *v1.PersistentVolumeClaimPhase `json:"phase,omitempty"`
AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
Capacity *v1.ResourceList `json:"capacity,omitempty"`
Conditions []PersistentVolumeClaimConditionApplyConfiguration `json:"conditions,omitempty"`
AllocatedResources *v1.ResourceList `json:"allocatedResources,omitempty"`
ResizeStatus *v1.PersistentVolumeClaimResizeStatus `json:"resizeStatus,omitempty"`
}
// PersistentVolumeClaimStatusApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimStatus type for use with
@@ -75,3 +77,19 @@ func (b *PersistentVolumeClaimStatusApplyConfiguration) WithConditions(values ..
}
return b
}
// WithAllocatedResources sets the AllocatedResources field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the AllocatedResources field is set to the value of the last call.
func (b *PersistentVolumeClaimStatusApplyConfiguration) WithAllocatedResources(value v1.ResourceList) *PersistentVolumeClaimStatusApplyConfiguration {
b.AllocatedResources = &value
return b
}
// WithResizeStatus sets the ResizeStatus field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the ResizeStatus field is set to the value of the last call.
func (b *PersistentVolumeClaimStatusApplyConfiguration) WithResizeStatus(value v1.PersistentVolumeClaimResizeStatus) *PersistentVolumeClaimStatusApplyConfiguration {
b.ResizeStatus = &value
return b
}

View File

@@ -5291,6 +5291,11 @@ var schemaYAML = typed.YAMLObject(`types:
elementType:
scalar: string
elementRelationship: atomic
- name: allocatedResources
type:
map:
elementType:
namedType: io.k8s.apimachinery.pkg.api.resource.Quantity
- name: capacity
type:
map:
@@ -5307,6 +5312,9 @@ var schemaYAML = typed.YAMLObject(`types:
- name: phase
type:
scalar: string
- name: resizeStatus
type:
scalar: string
- name: io.k8s.api.core.v1.PersistentVolumeClaimTemplate
map:
fields: