-
Notifications
You must be signed in to change notification settings - Fork 373
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
Is it mandatory to 'stage' a volume on 'staging target path' provided by CO ? #385
Comments
if it becomes mandatory as staging path is a directory how about block volumes? |
the CO will pass around the staging_target_directory from NodeStageVolume to NodePublishVolume. As a SP, you stage your volume however you like inside the staging_target_directory. For example, you can stage it directly at the starging_target_directory, or a subdirectory or file underneath. You can also store other files/metadata inside the staging_target_directory if you like. |
There is a interesting consequence of SP storing metadata under staging target_dir, I am noticing that if stage fails then k8s tries to remove the staging directory - https://github.com/kubernetes/kubernetes/blob/master/pkg/volume/csi/csi_attacher.go#L330 but if it had files, that would fail. It is somewhat messy.. :( |
@msau42 thanks, but as mentioned in the problem description , if SP put a directory or file inside the staging target path directory, the
Afaict, all the code paths in One other issue I noticed here is this : In this case ie when timeout of 2 mins occurs while staging was in progress, CO start cleanup process which can fail due to an error like |
Are you saying there is a problem with the normal Stage->Publish->Unpublish->Unstage flow? Or there's only a problem when Stage fails? I think it should be up to the SP to make sure to undo/cleanup when they abort an operation |
@msau42 in short, kubernetes/kubernetes#82190 covers the issue I was mentioning. |
…tage. At present, it is unclear to SP that, how to use staging_target_path and the possibilities of using the same. This patch add more details on `staging target path` and its usage. Fix # container-storage-interface#385 Signed-off-by: Humble Chirammal <[email protected]>
…tage. At present, it is unclear to SP that, how to use staging_target_path and the possibilities of using the same. This patch add more details on `staging target path` and its usage. Fix # container-storage-interface#385 Signed-off-by: Humble Chirammal <[email protected]>
Is there actually a spec issue here, or is this some k8s/CSI implementation issue? |
The Staging target path is carved out by CO and passed to SP. From the spec it is not clear that, whether the SP has to stage a volume on this target path only.
Is it mandatory ?
If it is not mandatory, I see there are couple of issues.
The SP dont have a mechanism to pass the
new
target path to CO viaNodeStageVolumeResponse
.The cleanup operation of stage volume actually happens on the path provided by CO ( ex: Kubernetes) . Here I am referring to
removeMountDir
code in kubernetes.Any thoughts ?
The text was updated successfully, but these errors were encountered: