Skip to content

Commit 698cd3d

Browse files
committed
Add update for annotation API
1 parent 316f5aa commit 698cd3d

File tree

1 file changed

+13
-0
lines changed
  • keps/sig-storage/1790-recover-resize-failure

1 file changed

+13
-0
lines changed

keps/sig-storage/1790-recover-resize-failure/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- [Non-Goals](#non-goals)
1111
- [Proposal](#proposal)
1212
- [Making allocatedResourceStatus not change unnecessarily for every error in 1.31](#making-allocatedresourcestatus-not-change-unnecessarily-for-every-error-in-131)
13+
- [Handling of RWX volumes that don't require node expansion](#handling-of-rwx-volumes-that-dont-require-node-expansion)
1314
- [Making resizeStatus more general in v1.28](#making-resizestatus-more-general-in-v128)
1415
- [User flow stories](#user-flow-stories)
1516
- [Case 0 (default PVC creation):](#case-0-default-pvc-creation)
@@ -27,6 +28,7 @@
2728
- [Graduation Criteria](#graduation-criteria)
2829
- [Alpha](#alpha)
2930
- [Beta](#beta)
31+
- [GA](#ga)
3032
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
3133
- [Version Skew Strategy](#version-skew-strategy)
3234
- [Monitoring](#monitoring)
@@ -140,6 +142,17 @@ This will allow external-resizer to recover safely from node expansion failures
140142

141143
![New flow kubelet](./Expanding volume - Kubelet Loop.png)
142144

145+
### Handling of RWX volumes that don't require node expansion
146+
147+
There are CSI drivers which return `NodeExpansionRequired: false` after `ControllerExpandVolume` is finished, but in kubelet to handle the case of node-expansion of RWX volumes, we usually MUST call `NodeExpandVolume` on each node where volume is attached, even if `ControllerExpandVolume` is finished and no node-expansion is required. This special case *only* applies to RWX volumes.
148+
149+
To avoid calling `NodeExpandVolume` for such volumes, we are proposing that we add an annotation to PVC called - `volume.kubernetes.io/node-expansion-not-required` when `ControllerExpandVolume` is finished and `NodeExpansionRequired` is set to `false` - https://github.com/kubernetes-csi/external-resizer/pull/496/files .
150+
151+
In kubelet if a RWX volume has this annotation, no `NodeExpandVolume` will be called and and updated size of the volume will simply be recorded in actual state of the world.This is implemented in - https://github.com/kubernetes/kubernetes/pull/131907 .
152+
153+
The proposed mechanism is fully backward compatible and only applies to RWX volumes.
154+
155+
143156
### Making resizeStatus more general in v1.28
144157

145158
After [some discussion](https://github.com/kubernetes/kubernetes/pull/116335#issuecomment-1624566731) with sig-storage folks, we are proposing that we rename `pvc.Status.ResizeStatus` to `pvc.Status.AllocatedResourceStatus` and make it a map.

0 commit comments

Comments
 (0)