Adding staging path to NodeGetVolumeStats and NodeExpandVolume RPCs

4 views
Skip to first unread message

Ben Swartzlander

unread,
Sep 19, 2019, 2:52:34 PM9/19/19
to container-storage-interface-community
As discussed at yesterday's community meeting, I am proposing adding a
staging_path field to NodeGetVolumeStats() and NodeExpandVolume().

https://github.com/container-storage-interface/spec/pull/390

At a previous meeting, I raised the issue that for some plugins (mine at
least) it was not easy to figure out if the client of the RPC was
passing a staging path or a publish path in the case of the 2 RPC which
allow the CO to pass either path (GetVolumeStats and ExpandVolume).
Because these features were already GA, we agreed that there was no easy
fix for the problem, and any change to address the issue would need to
backwards compatible.

One proposal to fix this was to add an additional enum argument
specifying either publish or staging or unknown (defaulting to unknown)
and having the CO set that field depending on which choice it made.

After spending more time implementing and testing these methods, it
became clear that, given a choice, the staging path is preferable to the
publish path in every scenario we could think of. During yesterday's
meeting we agreed that it would be less ugly to simply add a second
optional path argument, which was explicitly the staging path. This
approach requires only 1 new optional field and allows the SP to figure
out everything it needs to no matter what the CO chooses to do. Also it
doesn't impose any burden on the COs, they just need to have access to
the staging path when calling these RPCs, which should never be a
difficult thing to do.

Anyone who is interested in this change, please review it on github.

thanks!
-Ben Swartzlander
Reply all
Reply to author
Forward
0 new messages