Backport of CSI: Expand Volume (Controller only) into release/1.6.x #18505
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport
This PR is auto-generated from #18359 to be assessed for backporting due to the inclusion of the label backport/1.6.x.
The below text is copied from the body of the original PR.
Addresses #10324 with declarative config (instead of a new imperative command/api route).
I still need to update docs, but to trigger a volume increase, modify the volume specification that was used initially to create/register the volume with a higher
capacity_min
(and optionallycapacity_max
), then issuecreate
orregister
again.This introduces a comparatively very slow process into the create/register flow (if expand is actually needed), and modifies the behavior of
create
to be more idempotent than it currently is (presently it always issues create to the controller plugin).I hemmed and hawed a lot on where the validation logic should live, so I'd be happy to hear any suggestions to move any of it. I mainly want to avoid putting it right before writing to raft, because by that point reality (a real live disk in the world) may have already changed.
The commit history is messy right now; I intend to squash it before merging.
So far this covers
ControllerExpandVolume
to increase volumes outside of the instance (e.g. an AWS EBS volume), but does not yet complete the process (when required) withNodeExpandVolume
on the node where the volume is mounted. I think I'll make that a separate PR.Overview of commits