-
Notifications
You must be signed in to change notification settings - Fork 5.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update CSI migration design for volume resizing #3624
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. One clarification: In the context of resize, no PV specs are involved and thus no translation of specs involved either for migration, correct? Only PVC specs get modified and those do not require translations, right?
@ddebroy there are PV specs involved when external resizer did it's job and it will update the PV spec to reflect the new size. Given that, we still need to check the migration condition in |
f9648e2
to
ba22488
Compare
/lgtm |
/approve /assign @gnufied |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: leakingtapan, saad-ali The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks cheng! some additional questions
|
||
To synchronize between expand controller and external resize, external resizer will find provisioner name | ||
using PVC annotation `volume.beta.kubernetes.io/storage-provisioner`. If the name matches to the CSI driver | ||
name, it guarantees that the PV is provisioned by CSI driver, hence external resizer will proceed with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you add to the doc why this is guaranteed, and what is the difference between native CSI usage and using CSI through Migration. Do we need to treat those cases differently?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The difference is on which plugin backend is actually used. For in-tree volume, it will be in-tree provisioner name; for CSI volume, it will be CSI driver name. Updated doc
/hold |
annotation to let external resizer to react on it. | ||
|
||
#### Online Resizing | ||
//TODO: Design |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For online resizing - we just need to ensure that we perform spec conversion before calling into volume
plugin interface. Once we do that, rest of the code should delegate correctly to CSI driver and work as expected.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also - online resizing won't require anything special on the controller. it just requires changes in the volume_manager's call.
ba22488
to
7e696af
Compare
7e696af
to
fbe2207
Compare
fbe2207
to
081dda3
Compare
/lgtm |
081dda3
to
5970eb0
Compare
/lgtm Thanks @leakingtapan, this looks great! |
Update CSI migration design for volume resizing
Update CSI migration design to include resize migration design.
/cc @ddebroy @davidz627 @gnufied