-
Notifications
You must be signed in to change notification settings - Fork 382
Volume expansion proposal #334
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
Volume expansion proposal #334
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 mod CI complaints
@jdef I am going to squash these commits while rebasing if everything looks okay. cheers. |
917322d
to
f61d06d
Compare
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
Approve
@julian-hj @ddebroy Will merge after your LGTM |
`NodeExpandVolume` ONLY supports expansion of already node-published or node-staged volumes on the given `volume_path`. | ||
|
||
If plugin has `STAGE_UNSTAGE_VOLUME` node capability then: | ||
* `NodeExpandVolume` MUST be called after successful `NodeStageVolume`. |
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.
This would seem to contradict line 1776 in the offline ControllerExpandVolume OFFLINE instructions. Those indicate that a volume must be unstaged before it can be expanded, but this line says it must be staged. Maybe this section seems to be about the online flow. Does it need to be updated to reflect that NodeExpandVolume also sometimes participates in offline flow? Or am I just confused?
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.
Those indicate that a volume must be unstaged before it can be expanded...
The way that I'm reading the ControllerExpandVolume OFFLINE instructions is that the volume must be unstaged before it can be controller-expanded. Controller-expansion and node-expansion are different events.
This section talks about node-expansion.
Is there a way that we could make that more clear?
Did I misunderstand the concern?
Am I reading the proposal wrong?
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.
@jdef no you are right. ONLINE and OFFLINE capabilities are entirely about whether you can call ControllerExpandVolume
while volume is published/available or not. I thought language of OFFLINE clarified this:
// OFFLINE indicates that volumes currently published and
// available on a node SHALL NOT be expanded via
// ControllerExpandVolume
NodeExpandVolume
ALWAYS requires that volume is either published or staged. It does not support any kind of OFFLINE expansion on the node.
f61d06d
to
df16f23
Compare
df16f23
to
fe26ef3
Compare
@julian-hj can you take another look? |
add support for volume expansion RPC calls. also add plugin capabilities that allow CO to query whether volume expansion is supported online or offline.
fe26ef3
to
ec6a414
Compare
@gnufied hmm. To me, it would be natural to assume that OFFLINE as a plugin capability means that the volume must be offline in order to be expanded, particularly since OFFLINE is a plugin capability, not a controller capability. So I think the proposed spec is still fairly confusing. If it is acceptable for a CO to call |
A OFFLINE plugin capability can't mean that - volume has to be offline on the node for It is true to some extent that, may be then we should not use plugin capabilities to define this property and stick this with controller capabilities. But - there are two problems with that:
|
@gnufied @jdef OK, so if I am understanding things, then what you've said isn't consistent. Earlier, you both agreed that OFFLINE and ONLINE only concerns So...would it be accurate to say that |
What you mean by "applies"? I think you meant - even if plugin has only OFFLINE capability it still may require a call of Or to rephrase - the capabilities don't say anything at all about when
I think that won't be accurate to say. Using example I gave previously. Using XFS file system on a Azure Disk volume. The plugin will declare expansion capabilities as |
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.
After discussion in the Community Meeting, I am OK with this PR, although I still think we should make additional changes after to clarify the way that NodeExpandVolume gets invoked in the OFFLINE flow.
I think we can merge this PR as-is, and then work on clarifying the doc in a separate PR though.
Version of #222
The original PR was timing out while loading.