Skip to content

Commit 6a6b292

Browse files
committed
chore: Simplify rule comments
1 parent adefa2a commit 6a6b292

1 file changed

Lines changed: 26 additions & 43 deletions

File tree

deploy/helm/secret-operator/templates/roles.yaml

Lines changed: 26 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,23 @@ metadata:
4343
labels:
4444
{{- include "operator.labels" . | nindent 4 }}
4545
rules:
46-
# Required to maintain the CRD. The operator needs to do this, as it needs to enter e.g. it's
47-
# generated certificate in the conversion webhook.
46+
# Required for maintaining the CRDs (including the conversion webhook configuration) and
47+
# for the startup condition check.
4848
{{- if .Values.maintenance.customResourceDefinitions.maintain }}
4949
- apiGroups: [apiextensions.k8s.io]
5050
resources: [customresourcedefinitions]
5151
verbs:
52+
# Required to maintain the CRD (e.g. conversion webhook certificate).
5253
- create
5354
- patch
5455
# Required for startup condition
5556
- list
5657
- watch
5758
{{- end }}
58-
# Secrets: read/written by several subsystems:
59-
# - autoTLS backend: reads and writes the CA Secret using the kube entry API, which issues
60-
# replace() (HTTP PUT) when updating an existing entry — this requires the `update` verb
61-
# in addition to the SSA verbs (create + patch). Also reads ConfigMap/Secret trust roots.
62-
# - kerberosKeytab backend: reads the admin keytab Secret.
63-
# - k8sSearch backend: lists Secrets by label selector.
64-
# - certManager backend: reads the Secret provisioned by cert-manager.
65-
# - truststore controller: applies Secrets via SSA (create + patch) and watches them via .owns().
59+
# Secrets are read and written by multiple backends (autoTLS CA storage, Kerberos keytab,
60+
# k8sSearch, cert-manager). The autoTLS backend uses replace (HTTP PUT) for CA entries,
61+
# requiring the update verb in addition to SSA verbs. The truststore controller applies
62+
# trust-store Secrets via SSA and watches them for changes.
6663
- apiGroups:
6764
- ""
6865
resources:
@@ -74,8 +71,7 @@ rules:
7471
- create
7572
- patch
7673
- update
77-
# Events (core v1): required by the external-provisioner sidecar container, which runs under the
78-
# same ServiceAccount and uses the legacy core/v1 events API (distinct from events.k8s.io below).
74+
# Required by the external-provisioner sidecar, which uses the legacy core/v1 events API.
7975
- apiGroups:
8076
- ""
8177
resources:
@@ -87,9 +83,8 @@ rules:
8783
- create
8884
- patch
8985
- update
90-
# ConfigMaps: applied by the truststore controller via SSA (create + patch) and watched via
91-
# .owns() and .watches(). Also read by the autoTLS backend for additional trust roots and
92-
# by the k8sSearch backend for the trust-store ConfigMap.
86+
# ConfigMaps are applied by the truststore controller via SSA and watched for changes.
87+
# Also read by the autoTLS backend for trust roots and by the k8sSearch backend.
9388
- apiGroups:
9489
- ""
9590
resources:
@@ -100,8 +95,7 @@ rules:
10095
- get
10196
- watch
10297
- list
103-
# PersistentVolumes: managed by the external-provisioner sidecar container (not the operator
104-
# binary directly). The sidecar creates, patches, and deletes PVs on behalf of the CSI driver.
98+
# PersistentVolumes are managed by the external-provisioner sidecar on behalf of the CSI driver.
10599
- apiGroups:
106100
- ""
107101
resources:
@@ -127,16 +121,15 @@ rules:
127121
- get
128122
- list
129123
- watch
130-
# For automatic cluster domain detection
124+
# For automatic cluster domain detection.
131125
- apiGroups:
132126
- ""
133127
resources:
134128
- nodes/proxy
135129
verbs:
136130
- get
137-
# CSINodes: used by the external-provisioner sidecar and node-driver-registrar for
138-
# topology-aware volume scheduling.
139-
# StorageClasses: used by the external-provisioner sidecar to read provisioner configuration.
131+
# Required by the external-provisioner sidecar to discover driver topology keys (CSINodes)
132+
# and determine volume binding mode (StorageClasses).
140133
- apiGroups:
141134
- storage.k8s.io
142135
resources:
@@ -146,21 +139,18 @@ rules:
146139
- get
147140
- list
148141
- watch
149-
# Pods: read by the CSI controller and node services to resolve secret scope (node IPs, service
150-
# names). Patched with expiry annotations so the restarter can evict pods before their
151-
# certificates expire.
142+
# Pods are read by the CSI driver to resolve secret scope. Patched with expiry annotations
143+
# so the restarter can evict pods before their certificates expire.
152144
- apiGroups:
153145
- ""
154146
resources:
155147
- pods
156148
verbs:
157149
- get
158150
- patch
159-
# SecretClasses: the primary configuration CRD.
160-
# - get: fetched by the CSI controller to initialize the secret backend, and by the truststore
161-
# controller during reconciliation.
162-
# - watch + list: watched by the truststore controller to re-reconcile when a SecretClass changes.
163-
# - create + patch (when CRD maintenance is enabled): used to deploy the default "tls" SecretClass.
151+
# SecretClasses are the primary configuration CRD. Read by the CSI controller and the
152+
# truststore controller. Watched to retrigger reconciliation when a SecretClass changes.
153+
# The operator creates the default "tls" SecretClass at startup when CRD maintenance is enabled.
164154
- apiGroups:
165155
- secrets.stackable.tech
166156
resources:
@@ -173,9 +163,7 @@ rules:
173163
- get
174164
- watch
175165
- list
176-
# TrustStores: the primary reconciled resource in the truststore controller
177-
# (Controller::new watches this type). The operator only reconciles existing TrustStores;
178-
# it never creates them, so no create/patch is needed here.
166+
# TrustStores are the primary reconciled resource in the truststore controller.
179167
- apiGroups:
180168
- secrets.stackable.tech
181169
resources:
@@ -184,9 +172,7 @@ rules:
184172
- get
185173
- watch
186174
- list
187-
# ListenerClasses, Listeners, PodListeners: read during volume provisioning to resolve
188-
# listener-scoped addresses (IPs/hostnames) for inclusion in TLS SANs and for topology
189-
# node pinning.
175+
# Read during volume provisioning to resolve listener-scoped addresses for TLS SANs.
190176
- apiGroups:
191177
- listeners.stackable.tech
192178
resources:
@@ -195,9 +181,8 @@ rules:
195181
- podlisteners
196182
verbs:
197183
- get
198-
# cert-manager Certificates: applied via SSA (create + patch) by the certManager backend
199-
# when provisioning a certificate, and read back (get) to check topology node affinity for
200-
# re-scheduling decisions.
184+
# cert-manager Certificates are applied via SSA by the cert-manager backend when provisioning
185+
# a certificate, and read back to check node affinity for scheduling decisions.
201186
- apiGroups:
202187
- cert-manager.io
203188
resources:
@@ -206,8 +191,7 @@ rules:
206191
- get
207192
- patch
208193
- create
209-
# Events (events.k8s.io): used by the kube-rs controller event recorder (distinct from
210-
# the legacy core/v1 events used by the external-provisioner sidecar above).
194+
# Publish reconciliation errors as Kubernetes Events.
211195
- apiGroups:
212196
- events.k8s.io
213197
resources:
@@ -216,9 +200,8 @@ rules:
216200
- create
217201
- patch
218202
{{ if .Capabilities.APIVersions.Has "security.openshift.io/v1" }}
219-
# OpenShift SecurityContextConstraints: allows the operator's ServiceAccount to use the
220-
# custom SCC defined above, which grants host-path volumes and bidirectional mount propagation
221-
# required by the CSI driver.
203+
# Required on OpenShift to allow the secret-operator pods to run with the custom SCC
204+
# defined above (host-path volumes and bidirectional mount propagation for the CSI driver).
222205
- apiGroups:
223206
- security.openshift.io
224207
resourceNames:

0 commit comments

Comments
 (0)