Skip to content
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

disk: verify VolumeCapabilities #902

Merged

Conversation

huww98
Copy link
Contributor

@huww98 huww98 commented Oct 24, 2023

What type of PR is this?

/kind api-change
/kind feature

What this PR does / why we need it:

Reject CreateVolume if capability cannot be supported: MULTI_NODE_MULTI_WRITER
and MULTI_NODE_SINGLE_WRITER for mount volumes.

Require MultiAttach to be enabled in parameters if multi-node access is requested.
We do not enable it automatically because multi-attach implies additional limits,
which may be unexpected to user.

Also implement the ValidateVolumeCapabilities controller RPC call.

Which issue(s) this PR fixes:

Fixes CSI sanity case:

  • controller service [controller server] validatevolumecapabilities [it] should fail when the requested volume does not exist

Special notes for your reviewer:

PVC with volumeMode: Filesystem and accessModes: [ ReadWriteMany ] will fail with this event:

Warning ProvisioningFailed 2s (x3 over 3s) diskplugin.csi.alibabacloud.com_csi-provisioner-647f8bccfb-w22zq_d72ba154-98bf-4c6d-b276-8cb0120fcbbc failed to provision volume with StorageClass "csi-disk-essd-immediate": rpc error: code = InvalidArgument desc = Invalid parameters from input: disk-ebddaed2-f256-4d6b-8855-785a1072fc11, with error: multi-node writing is only supported for block volume

Does this PR introduce a user-facing change?

action required. New mount volume cannot be created if it has ReadWriteMany access mode. multiAttach is now required if other multi-node access is requested in access mode.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


@k8s-ci-robot k8s-ci-robot added kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Oct 24, 2023
@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Oct 24, 2023
@k8s-ci-robot
Copy link
Contributor

Hi @huww98. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Oct 24, 2023
@huww98 huww98 force-pushed the disk-ValidateVolumeCapabilities branch from a449a0b to 90c22d1 Compare October 25, 2023 07:10
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 16, 2024
@huww98 huww98 force-pushed the disk-ValidateVolumeCapabilities branch from 90c22d1 to a1f82ac Compare January 17, 2024 03:10
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 17, 2024
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 5, 2024
@huww98 huww98 force-pushed the disk-ValidateVolumeCapabilities branch from a1f82ac to 51b3927 Compare March 18, 2024 09:59
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 18, 2024
@huww98 huww98 force-pushed the disk-ValidateVolumeCapabilities branch from 51b3927 to fc2443b Compare April 7, 2024 03:27
@huww98
Copy link
Contributor Author

huww98 commented Apr 7, 2024

I've modified this PR to NOT enable multi-attach automatically. Because that implies additional limits.

@huww98 huww98 force-pushed the disk-ValidateVolumeCapabilities branch from fc2443b to 170c33a Compare April 10, 2024 11:22
@huww98
Copy link
Contributor Author

huww98 commented Apr 10, 2024

rebased for csi-sanity
/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Apr 10, 2024
Reject CreateVolume if capability cannot be supported: MULTI_NODE_MULTI_WRITER
and MULTI_NODE_SINGLE_WRITER for mount volumes.

Require MultiAttach to be enabled in parameters if multi-node access is requested.
We do not enable it automatically because multi-attach implies additional limits,
which may be unexpected to user.

Also implement the ValidateVolumeCapabilities controller RPC call.
@huww98 huww98 force-pushed the disk-ValidateVolumeCapabilities branch from 170c33a to 66a36fc Compare May 28, 2024 12:45
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels May 28, 2024
@huww98
Copy link
Contributor Author

huww98 commented May 28, 2024

/auto-cc

@mowangdk
Copy link
Contributor

/lgtm
/approve

Add e2e test later

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 28, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: huww98, mowangdk

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 28, 2024
@k8s-ci-robot k8s-ci-robot merged commit c223758 into kubernetes-sigs:master May 28, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants