-
Notifications
You must be signed in to change notification settings - Fork 345
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
Make fstype configurable while starting the external-provisioner #328
Comments
@humblec FYI |
I don't think fstype should be defaulted at all. There are filer types like nfs that expect a "" as the fstype |
@msau42 As @Madhu-1 mentioned, fstype is set to |
That doesn't seem right. Filer types like nfs/gluster/ceph should be failing when they validate fstype |
Have to go through in detail, but at glance , CSI pv source has been corrected. This has to be corrected here too. Isnt it ? |
Yes I don't think external provisioner should default. Now the question is will we break drivers that expect a non empty value? Need to double check CSI spec wording in this |
Yeah, we have to cross check on this, and also ( may be ) on backward compatibility of sidecar ? |
/kind bug |
I spoke with @jsafrane and he suggested we add a Does this sound reasonable to you? Would you have time to work on this? |
Well, we could have |
I prefer having the external provisioner not default anything at all and leave it entirely up to the plugin |
Sure.
Sure, will work on this. thanks! |
@humblec do you still have time to work on this? |
/help |
@msau42: Please ensure the request meets the requirements listed here. If this request no longer meets these requirements, the label can be removed In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
I agree with @msau42 that there should be no default FS type in external provisioner at all. The CSI driver can choose the default FS type based on various other factors like access mode and external provisioner should just pass fstype as empty string in create volume request. |
At present the fstype is set to `ext4` if nothing is passed in storage-class. However a SP could prefer to have different fstype for many reasons for their driver/volumes. This patch enables SP who is using the external-provisioner to choose the default fstype which they want to have it. Fix# kubernetes-csi#328 Signed-off-by: Humble Chirammal <[email protected]>
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
…class. However a SP could prefer to have different fstype for many reasons for their driver/volumes. This patch enables SP who is using the external-provisioner to choose the fstype which they want to have it. Fix# kubernetes-csi#328 Signed-off-by: Humble Chirammal <[email protected]>
…class. However a SP could prefer to have different fstype for many reasons for their driver/volumes. This patch enables SP who is using the external-provisioner to choose the fstype which they want to have it. Fix# kubernetes-csi#328 Signed-off-by: Humble Chirammal <[email protected]>
Fixed in #400 |
@msau42: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@msau42 @humblec I have a question about this bug. Basically what we're saying is that the storage provider should have the capability of choosing their own I have a bug where no However, Kubernetes' internal state assumes that When i add the I've provided more details (logs, ref code) here - kubernetes-sigs/vsphere-csi-driver#370 (comment) Is that the expected behavior? I'm thinking there should be some mechanism for the CSI driver to communicate back to Kubernetes what |
Good find. That is indeed a problem for plugins that need fsgroup support. For now, I think the best approach is to set the --default-fstype flag. In 1.20, we're targeting promoting the csidriver fsgroup feature to beta, which lets drivers explicitly opt in to supporting fsgroup instead of using this rwo + fstype heuristic. |
Agree with both of you :) .. In short if SC and Provisioner does not specify |
Thanks for the info! I'll keep a look out for the fsgroup feature and make a change to our YAMLs for now |
None of the solutions work particularly well for meta-CSI plugins like Trident, which support multiple protocols and therefore multiple default FS types. The ideal solution from our perspective would be to allow the SP to tell the CO which fstype it defaulted to when the CO didn't specify one. That requires a CSI spec change though and I don't see it happening soon if ever. The workaround we're going with is to tell our users to not leave the fstype blank in their storage classes. |
Yes, I think we should look into adding something to CSI. Windows has a similar issue, in that you may want to default to a different filesystem depending on which node the pod gets scheduled to. @jingxu97 is looking into it |
We have the same issue that vSphere CSI supports multiple protocols and we default to a protocol based on the create volume request. We definitely need to enhance CSI spec to communicate back the fstype that was used by CSI driver back to CO. |
There are cases where it really matters whether the storage class contains a FS type (kubernetes-csi/external-provisioner#328 (comment)). To cover that with our tests we need a storage class that has just the defaults. Explicitly setting reclaim policy and immediate binding also only makes sense to show that those options exists, which is covered by Kubernetes documentation. We better ensure that we really use the defaults by not even setting those.
There are cases where it really matters whether the storage class contains a FS type (kubernetes-csi/external-provisioner#328 (comment)). To cover that with our tests we need a storage class that has just the defaults. Explicitly setting reclaim policy and immediate binding also only makes sense to show that those options exists, which is covered by Kubernetes documentation. We better ensure that we really use the defaults by not even setting those.
There are cases where it really matters whether the storage class contains a FS type (kubernetes-csi/external-provisioner#328 (comment)). To cover that with our tests we need a storage class that has just the defaults. Explicitly setting reclaim policy and immediate binding also only makes sense to show that those options exists, which is covered by Kubernetes documentation. We better ensure that we really use the defaults by not even setting those. (cherry picked from commit d67a5f3)
currently in external-provisioner fstype is set to
ext4
if nothing is passed in storage-class, we have a requirement to make it configurable so that the SP who is using the external-provisioner can choose the default fstype which they want to have it. This will avoid always mentioning of the fstype in the storage-class.in rbd csi plugin, we have seen better performance with
xfs
type, as external-provisioner is defaulting toext4
, in rbd csi we are asking users to mention the fstype asxfs
in storage class. if fstype can be configured in external-provisioner user don't need to bother about the default fstype used.CC @msau42
The text was updated successfully, but these errors were encountered: