Browse Source

Exclude unused resources from rbac (#4572)

* adds Helm value option to disable OpenShift finalizers in RBAC

Signed-off-by: Ricardo Bartels <ricardo.bartels@telekom.de>

* excludes unused resources from RBAC definitions

Signed-off-by: Ricardo Bartels <ricardo.bartels@telekom.de>

---------

Signed-off-by: Ricardo Bartels <ricardo.bartels@telekom.de>
Ricardo 1 year ago
parent
commit
82cad90287

+ 1 - 0
deploy/charts/external-secrets/README.md

@@ -126,6 +126,7 @@ The command removes all the Kubernetes components associated with the chart and
 | nameOverride | string | `""` |  |
 | nameOverride | string | `""` |  |
 | namespaceOverride | string | `""` |  |
 | namespaceOverride | string | `""` |  |
 | nodeSelector | object | `{}` |  |
 | nodeSelector | object | `{}` |  |
+| openshiftFinalizers | bool | `true` | If true the OpenShift finalizer permissions will be added to RBAC |
 | podAnnotations | object | `{}` | Annotations to add to Pod |
 | podAnnotations | object | `{}` | Annotations to add to Pod |
 | podDisruptionBudget | object | `{"enabled":false,"minAvailable":1}` | Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
 | podDisruptionBudget | object | `{"enabled":false,"minAvailable":1}` | Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
 | podLabels | object | `{}` |  |
 | podLabels | object | `{}` |  |

+ 44 - 0
deploy/charts/external-secrets/templates/rbac.yaml

@@ -17,11 +17,19 @@ rules:
     - "external-secrets.io"
     - "external-secrets.io"
     resources:
     resources:
     - "secretstores"
     - "secretstores"
+    {{- if .Values.processClusterStore }}
     - "clustersecretstores"
     - "clustersecretstores"
+    {{- end }}
     - "externalsecrets"
     - "externalsecrets"
+    {{- if .Values.processClusterExternalSecret }}
     - "clusterexternalsecrets"
     - "clusterexternalsecrets"
+    {{- end }}
+    {{- if .Values.processPushSecret }}
     - "pushsecrets"
     - "pushsecrets"
+    {{- end }}
+    {{- if .Values.processClusterPushSecret }}
     - "clusterpushsecrets"
     - "clusterpushsecrets"
+    {{- end }}
     verbs:
     verbs:
     - "get"
     - "get"
     - "list"
     - "list"
@@ -31,22 +39,42 @@ rules:
     resources:
     resources:
     - "externalsecrets"
     - "externalsecrets"
     - "externalsecrets/status"
     - "externalsecrets/status"
+    {{- if .Values.openshiftFinalizers }}
     - "externalsecrets/finalizers"
     - "externalsecrets/finalizers"
+    {{- end }}
     - "secretstores"
     - "secretstores"
     - "secretstores/status"
     - "secretstores/status"
+    {{- if .Values.openshiftFinalizers }}
     - "secretstores/finalizers"
     - "secretstores/finalizers"
+    {{- end }}
+    {{- if .Values.processClusterStore }}
     - "clustersecretstores"
     - "clustersecretstores"
     - "clustersecretstores/status"
     - "clustersecretstores/status"
+    {{- if .Values.openshiftFinalizers }}
     - "clustersecretstores/finalizers"
     - "clustersecretstores/finalizers"
+    {{- end }}
+    {{- end }}
+    {{- if .Values.processClusterExternalSecret }}
     - "clusterexternalsecrets"
     - "clusterexternalsecrets"
     - "clusterexternalsecrets/status"
     - "clusterexternalsecrets/status"
+    {{- if .Values.openshiftFinalizers }}
     - "clusterexternalsecrets/finalizers"
     - "clusterexternalsecrets/finalizers"
+    {{- end }}
+    {{- end }}
+    {{- if .Values.processPushSecret }}
     - "pushsecrets"
     - "pushsecrets"
     - "pushsecrets/status"
     - "pushsecrets/status"
+    {{- if .Values.openshiftFinalizers }}
     - "pushsecrets/finalizers"
     - "pushsecrets/finalizers"
+    {{- end }}
+    {{- end }}
+    {{- if .Values.processClusterPushSecret }}
     - "clusterpushsecrets"
     - "clusterpushsecrets"
     - "clusterpushsecrets/status"
     - "clusterpushsecrets/status"
+    {{- if .Values.openshiftFinalizers }}
     - "clusterpushsecrets/finalizers"
     - "clusterpushsecrets/finalizers"
+    {{- end }}
+    {{- end }}
     verbs:
     verbs:
     - "get"
     - "get"
     - "update"
     - "update"
@@ -134,6 +162,7 @@ rules:
     - "create"
     - "create"
     - "update"
     - "update"
     - "delete"
     - "delete"
+  {{- if .Values.processPushSecret }}
   - apiGroups:
   - apiGroups:
     - "external-secrets.io"
     - "external-secrets.io"
     resources:
     resources:
@@ -142,6 +171,7 @@ rules:
     - "create"
     - "create"
     - "update"
     - "update"
     - "delete"
     - "delete"
+  {{- end }}
 ---
 ---
 apiVersion: rbac.authorization.k8s.io/v1
 apiVersion: rbac.authorization.k8s.io/v1
 {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
 {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
@@ -165,9 +195,15 @@ rules:
     resources:
     resources:
       - "externalsecrets"
       - "externalsecrets"
       - "secretstores"
       - "secretstores"
+      {{- if .Values.processClusterStore }}
       - "clustersecretstores"
       - "clustersecretstores"
+      {{- end }}
+      {{- if .Values.processPushSecret }}
       - "pushsecrets"
       - "pushsecrets"
+      {{- end }}
+      {{- if .Values.processClusterPushSecret }}
       - "clusterpushsecrets"
       - "clusterpushsecrets"
+      {{- end }}
     verbs:
     verbs:
       - "get"
       - "get"
       - "watch"
       - "watch"
@@ -213,9 +249,15 @@ rules:
     resources:
     resources:
       - "externalsecrets"
       - "externalsecrets"
       - "secretstores"
       - "secretstores"
+      {{- if .Values.processClusterStore }}
       - "clustersecretstores"
       - "clustersecretstores"
+      {{- end }}
+      {{- if .Values.processPushSecret }}
       - "pushsecrets"
       - "pushsecrets"
+      {{- end }}
+      {{- if .Values.processClusterPushSecret }}
       - "clusterpushsecrets"
       - "clusterpushsecrets"
+      {{- end }}
     verbs:
     verbs:
       - "create"
       - "create"
       - "delete"
       - "delete"
@@ -333,7 +375,9 @@ rules:
     - "external-secrets.io"
     - "external-secrets.io"
     resources:
     resources:
     - "externalsecrets"
     - "externalsecrets"
+    {{- if .Values.processPushSecret }}
     - "pushsecrets"
     - "pushsecrets"
+    {{- end }}
     verbs:
     verbs:
     - "get"
     - "get"
     - "list"
     - "list"

+ 3 - 0
deploy/charts/external-secrets/values.schema.json

@@ -434,6 +434,9 @@
             "properties": {},
             "properties": {},
             "type": "object"
             "type": "object"
         },
         },
+        "openshiftFinalizers": {
+            "type": "boolean"
+        },
         "podAnnotations": {
         "podAnnotations": {
             "properties": {},
             "properties": {},
             "type": "object"
             "type": "object"

+ 3 - 0
deploy/charts/external-secrets/values.yaml

@@ -78,6 +78,9 @@ scopedNamespace: ""
 # and implicitly disable cluster stores and cluster external secrets
 # and implicitly disable cluster stores and cluster external secrets
 scopedRBAC: false
 scopedRBAC: false
 
 
+# -- If true the OpenShift finalizer permissions will be added to RBAC
+openshiftFinalizers: true
+
 # -- if true, the operator will process cluster external secret. Else, it will ignore them.
 # -- if true, the operator will process cluster external secret. Else, it will ignore them.
 processClusterExternalSecret: true
 processClusterExternalSecret: true