|
10 | 10 | - [Non-Goals](#non-goals)
|
11 | 11 | - [Proposal](#proposal)
|
12 | 12 | - [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) |
13 | 14 | - [Making resizeStatus more general in v1.28](#making-resizestatus-more-general-in-v128)
|
14 | 15 | - [User flow stories](#user-flow-stories)
|
15 | 16 | - [Case 0 (default PVC creation):](#case-0-default-pvc-creation)
|
|
27 | 28 | - [Graduation Criteria](#graduation-criteria)
|
28 | 29 | - [Alpha](#alpha)
|
29 | 30 | - [Beta](#beta)
|
| 31 | + - [GA](#ga) |
30 | 32 | - [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
|
31 | 33 | - [Version Skew Strategy](#version-skew-strategy)
|
32 | 34 | - [Monitoring](#monitoring)
|
@@ -140,6 +142,17 @@ This will allow external-resizer to recover safely from node expansion failures
|
140 | 142 |
|
141 | 143 | 
|
142 | 144 |
|
| 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 | + |
143 | 156 | ### Making resizeStatus more general in v1.28
|
144 | 157 |
|
145 | 158 | 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