Skip to content

Commit

Permalink
add extraRbac for resizer and snapshotter
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaumebernard84 committed Sep 30, 2024
1 parent a49540f commit d9ad750
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 21 deletions.
18 changes: 6 additions & 12 deletions charts/cinder-csi-plugin/templates/controllerplugin-rbac.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,6 @@ rules:
- apiGroups: [""]
resources: ["events"]
verbs: ["list", "watch", "create", "update", "patch"]
# Secret permission is optional.
# Enable it if your driver needs secret.
# For example, `csi.storage.k8s.io/snapshotter-secret-name` is set in VolumeSnapshotClass.
# See https://kubernetes-csi.github.io/docs/secrets-and-credentials.html for more details.
# - apiGroups: [""]
# resources: ["secrets"]
# verbs: ["get", "list"]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshotclasses"]
verbs: ["get", "list", "watch"]
Expand All @@ -116,6 +109,9 @@ rules:
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "watch", "list", "delete", "update", "create"]
{{- with .Values.csi.snapshotter.extraRbac }}
{{- toYaml . | nindent 2 }}
{{- end }}
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
Expand All @@ -135,11 +131,6 @@ apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: csi-resizer-role
rules:
# The following rule should be uncommented for plugins that require secrets
# for provisioning.
# - apiGroups: [""]
# resources: ["secrets"]
# verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "patch"]
Expand All @@ -158,6 +149,9 @@ rules:
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "watch", "list", "delete", "update", "create"]
{{- with .Values.csi.resizer.extraRbac }}
{{- toYaml . | nindent 2 }}
{{- end }}
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
Expand Down
14 changes: 14 additions & 0 deletions charts/cinder-csi-plugin/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@ csi:
resources: {}
extraArgs: {}
extraEnv: []
# Secret permission is optional.
# Enable it if your driver needs secret.
# For example, `csi.storage.k8s.io/snapshotter-secret-name` is set in VolumeSnapshotClass.
# See https://kubernetes-csi.github.io/docs/secrets-and-credentials.html for more details.
extraRbac: {}
# - apiGroups: [""]
# resources: ["secrets"]
# verbs: ["get", "list"]
resizer:
image:
repository: registry.k8s.io/sig-storage/csi-resizer
Expand All @@ -38,6 +46,12 @@ csi:
resources: {}
extraArgs: {}
extraEnv: []
# The following rule should be uncommented for plugins that require secrets
# for provisioning.
extraRbac: {}
# - apiGroups: [""]
# resources: ["secrets"]
# verbs: ["get", "list", "watch"]
livenessprobe:
image:
repository: registry.k8s.io/sig-storage/livenessprobe
Expand Down
33 changes: 24 additions & 9 deletions docs/cinder-csi-plugin/multi-region-clouds.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,13 +325,28 @@ If you set the extraArgs in `plugin.extraArgs`, the same `extraArgs` will end up
You will still need to manually create your additionnal daemonsets for your additionnal regions.

```yaml
nodePlugin:
extraArgs: |-
- --cloud-name=region-one
- --additional-topology
- topology.kubernetes.io/region=region-one
controllerPlugin:
extraArgs: |-
- --cloud-name=region-one
- --cloud-name=region-two
nodePlugin:
extraArgs: |-
- --cloud-name=region-one
- --additional-topology
- topology.kubernetes.io/region=region-one
controllerPlugin:
extraArgs: |-
- --cloud-name=region-one
- --cloud-name=region-two
```

In addition, if you use the `resizer` and the `snapshotter`, you will need them to be able to read the secrets you defined in the storage class' annotations in order to determine which cloud to address. You will need to add some `extraRbac` in YAML format, like this:

```yaml
snapshotter:
extraRbac:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list"]
resizer:
extraRbac:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list", "watch"]
```

0 comments on commit d9ad750

Please sign in to comment.