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

document ClusterRole Secret access #273

Closed
sepich opened this issue Nov 25, 2023 · 5 comments
Closed

document ClusterRole Secret access #273

sepich opened this issue Nov 25, 2023 · 5 comments

Comments

@sepich
Copy link

sepich commented Nov 25, 2023

Describe the problem/challenge you have
We are investigating migration to your project from metal-stack/csi-driver-lvm.
Unfortunately with more features it seems also comes more complexity, and we cannot find reasons for that:

  1. Most important question is why do you need permission to read all cluster Secrets?


    We cannot find any mentions for this in docs, and in go code

  2. Another thing which seems poorly documented is why do you need custom CRDs?
    Putting aside snapshots, which we do not use. What kind of problem do you solve with lvmnodes.local.openebs.io and lvmvolumes.local.openebs.io? Why do you need separate controller and state, which can just be stored directly on nodes.

Describe the solution you'd like
It is nice you have ability to disable crd.volumeSnapshot in your helm chart.
Would be nice to also have ability to disable Secrets permissions and the rest of CRD, and clearly understand what would it break.

Thank you.

@abhilashshetty04
Copy link
Contributor

Hi @sepich , Thanks for raising the issue.

  1. This was the design decision in the zfs local pv as well. By having resources like lvmvolume and lvmnode as CR we make sure:
    a. We keep node and controller component completely stateless. Rely on k8s etcd to store the resource objects.
    b. We dont have to have gRPC CRUD interface between controller and node. Since its controller driven, core storage operations are driven by CR state.
    c. This makes lvm-localpv completely k8s native in a way. users can investigate storage resource with kubectl plugin.

  2. We already have the support to disable snapshot cr install. Part of following PR
    feat(release): add changes for v1.2.0 release #243
    https://github.com/openebs/lvm-localpv/blob/develop/deploy/helm/charts/values.yaml#L171C20-L171C20

@abhilashshetty04
Copy link
Contributor

abhilashshetty04 commented Dec 1, 2023

For the rbac query, We will raise a PR to remove the rule. Do you want to discuss 2nd and 3rd query? Were you able to disable snapshot crd?

@abhilashshetty04
Copy link
Contributor

abhilashshetty04 commented Dec 7, 2023

Hi @sepich , We have removed rbac rule for secrets in #277. We will proceed with closure of this issue for now. Please let us know incase you have more questions.

@sepich
Copy link
Author

sepich commented Dec 7, 2023

You only removed Secrets from the first ClusterRole, but they are still in the second:


And why does CSI driver needs permission to Services?
resources: ["persistentvolumes", "services"]

@abhilashshetty04
Copy link
Contributor

@sepich , Thanks for replying. We will look into these rules. Would you mind raising a PR with all changes that you are suggesting.

Moreover, Have you considered using Mayastor for your storage deployment. Its more actively developed. Its faster , Completely written in rust, Uses faster Nvme Tcp stack.

You could find more information here if you are interested.
https://mayastor.gitbook.io/introduction/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants