Skip to content

Commit 19e3b0b

Browse files
committed
chore: Update descriptions on RBAC permissions
1 parent 73ac222 commit 19e3b0b

1 file changed

Lines changed: 10 additions & 16 deletions

File tree

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

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,16 @@ metadata:
66
labels:
77
{{- include "operator.labels" . | nindent 4 }}
88
rules:
9-
# For automatic cluster domain detection: the operator fetches the kubelet config from
10-
# /api/v1/nodes/{name}/proxy/configz to read clusterDomain. The node name is provided
11-
# via the downward API (KUBERNETES_NODE_NAME env var) so no list/watch on nodes is needed.
9+
# For automatic cluster domain detection
1210
- apiGroups:
1311
- ""
1412
resources:
1513
- nodes/proxy
1614
verbs:
1715
- get
18-
# Manage core workload resources created per DruidCluster.
19-
# Applied via Server-Side Apply (create + patch) and tracked for orphan cleanup (list + delete).
20-
# get is also required: when reconciliation is paused the framework calls client.get() instead
21-
# of apply_patch(). Both types are owned by the controller (.owns()) and therefore also need watch.
22-
# - configmaps: role-group config maps and discovery config maps
23-
# - services: headless and metrics services per role group
16+
# Manage core workload resources created per AirflowCluster.
17+
# All resources are applied via Server-Side Apply (create + patch) and tracked for
18+
# orphan cleanup (list + delete).
2419
- apiGroups:
2520
- ""
2621
resources:
@@ -34,8 +29,7 @@ rules:
3429
- patch
3530
- watch
3631
# Shared internal authentication secret (cookie passphrase and internal client password).
37-
# Managed directly via client.apply_patch() / client.delete() in internal_secret.rs —
38-
# not via ClusterResources — so list and watch are not needed.
32+
# Orphan cleanup not needed (instead, Kubernetes GC via owner reference).
3933
- apiGroups:
4034
- ""
4135
resources:
@@ -79,7 +73,7 @@ rules:
7973
resourceNames:
8074
- {{ include "operator.name" . }}-clusterrole
8175
# StatefulSet created per role group. Applied via SSA, tracked for orphan cleanup, and
82-
# owned by the controller (.owns()), so watch is also required.
76+
# owned by the controller.
8377
- apiGroups:
8478
- apps
8579
resources:
@@ -120,7 +114,7 @@ rules:
120114
- list
121115
- watch
122116
# Listener created per role group for external access. Applied via SSA and tracked for orphan
123-
# cleanup. Not watched by the controller (no .owns() or .watches() on Listener in main.rs).
117+
# cleanup.
124118
- apiGroups:
125119
- listeners.stackable.tech
126120
resources:
@@ -140,8 +134,6 @@ rules:
140134
- create
141135
- patch
142136
# Primary CRD: watched by Controller::new() and read during reconciliation.
143-
# The operator only modifies the status subresource (see druiddclusters/status below),
144-
# so patch on the main object is not needed.
145137
- apiGroups:
146138
- {{ include "operator.name" . }}.stackable.tech
147139
resources:
@@ -150,7 +142,7 @@ rules:
150142
- get
151143
- list
152144
- watch
153-
# Status subresource: updated at the end of every reconciliation via apply_patch_status().
145+
# Status subresource: updated at the end of every reconciliation.
154146
- apiGroups:
155147
- {{ include "operator.name" . }}.stackable.tech
156148
resources:
@@ -177,6 +169,8 @@ rules:
177169
- list
178170
- watch
179171
---
172+
# Product ClusterRole: bound (via per DruidCluster RoleBinding) to the ServiceAccount that Druid
173+
# workload pods (webserver, scheduler, worker, triggerer, dag-processor) run as.
180174
apiVersion: rbac.authorization.k8s.io/v1
181175
kind: ClusterRole
182176
metadata:

0 commit comments

Comments
 (0)