Skip to content

Commit f5e4826

Browse files
authored
Merge pull request #456 from Bobbins228/fix/helm-rbac-authbridge-scc
Fix(helm): align ClusterRole with controller-gen and add AuthBridge SCC
2 parents f8c06b9 + 8f2664c commit f5e4826

4 files changed

Lines changed: 156 additions & 74 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
{{- if and .Values.rbac.enable (.Capabilities.APIVersions.Has "security.openshift.io/v1") }}
2+
# SCC for AuthBridge proxy-sidecar containers in agent namespaces.
3+
# Custom SCC needed because restricted-v2 does not permit CSI volumes
4+
# (csi.spiffe.io for SPIRE workload API).
5+
# groups is empty -- the operator creates per-namespace RoleBindings at runtime.
6+
apiVersion: security.openshift.io/v1
7+
kind: SecurityContextConstraints
8+
metadata:
9+
name: kagenti-authbridge
10+
labels:
11+
{{- include "chart.labels" . | nindent 4 }}
12+
app.kubernetes.io/component: authbridge
13+
groups: []
14+
allowHostDirVolumePlugin: false
15+
allowHostIPC: false
16+
allowHostNetwork: false
17+
allowHostPID: false
18+
allowHostPorts: false
19+
allowPrivilegedContainer: false
20+
allowPrivilegeEscalation: false
21+
allowedCapabilities: []
22+
defaultAddCapabilities: []
23+
requiredDropCapabilities:
24+
- ALL
25+
fsGroup:
26+
type: RunAsAny
27+
runAsUser:
28+
type: MustRunAsNonRoot
29+
seLinuxContext:
30+
type: MustRunAs
31+
supplementalGroups:
32+
type: RunAsAny
33+
seccompProfiles:
34+
- runtime/default
35+
volumes:
36+
- configMap
37+
- csi
38+
- downwardAPI
39+
- emptyDir
40+
- ephemeral
41+
- persistentVolumeClaim
42+
- projected
43+
- secret
44+
---
45+
# ClusterRole granting "use" on the kagenti-authbridge SCC.
46+
apiVersion: rbac.authorization.k8s.io/v1
47+
kind: ClusterRole
48+
metadata:
49+
name: system:openshift:scc:kagenti-authbridge
50+
labels:
51+
{{- include "chart.labels" . | nindent 4 }}
52+
app.kubernetes.io/component: authbridge
53+
rules:
54+
- apiGroups: ["security.openshift.io"]
55+
resources: ["securitycontextconstraints"]
56+
resourceNames: ["kagenti-authbridge"]
57+
verbs: ["use"]
58+
---
59+
# Grants the operator SA "use" on the SCC so it can delegate via RoleBindings.
60+
apiVersion: rbac.authorization.k8s.io/v1
61+
kind: ClusterRoleBinding
62+
metadata:
63+
name: kagenti-operator-scc-authbridge
64+
labels:
65+
{{- include "chart.labels" . | nindent 4 }}
66+
app.kubernetes.io/component: authbridge
67+
roleRef:
68+
apiGroup: rbac.authorization.k8s.io
69+
kind: ClusterRole
70+
name: system:openshift:scc:kagenti-authbridge
71+
subjects:
72+
- kind: ServiceAccount
73+
name: {{ .Values.controllerManager.serviceAccountName }}
74+
namespace: {{ .Release.Namespace }}
75+
{{- end -}}

charts/kagenti-operator/templates/rbac/role.yaml

Lines changed: 74 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ rules:
99
- ""
1010
resources:
1111
- configmaps
12+
- secrets
1213
verbs:
1314
- create
1415
- delete
@@ -23,28 +24,16 @@ rules:
2324
- endpoints
2425
verbs:
2526
- get
26-
- list
27-
- watch
2827
- apiGroups:
2928
- ""
3029
resources:
3130
- namespaces
32-
- services
3331
verbs:
3432
- create
3533
- get
3634
- list
3735
- patch
38-
- update
3936
- watch
40-
- apiGroups:
41-
- ""
42-
- events.k8s.io
43-
resources:
44-
- events
45-
verbs:
46-
- create
47-
- patch
4837
- apiGroups:
4938
- ""
5039
resources:
@@ -55,49 +44,25 @@ rules:
5544
- patch
5645
- update
5746
- watch
58-
- apiGroups:
59-
- ""
60-
resources:
61-
- secrets
62-
verbs:
63-
- create
64-
- delete
65-
- get
66-
- list
67-
- patch
68-
- update
69-
- watch
7047
- apiGroups:
7148
- ""
7249
resources:
7350
- serviceaccounts
51+
- services
7452
verbs:
7553
- create
7654
- get
7755
- list
7856
- update
7957
- watch
8058
- apiGroups:
81-
- cert-manager.io
59+
- ""
60+
- events.k8s.io
8261
resources:
83-
- certificates
84-
- issuers
62+
- events
8563
verbs:
8664
- create
87-
- delete
88-
- get
89-
- list
9065
- patch
91-
- update
92-
- watch
93-
- apiGroups:
94-
- cert-manager.io
95-
resources:
96-
- clusterissuers
97-
verbs:
98-
- get
99-
- list
100-
- watch
10166
- apiGroups:
10267
- agent.kagenti.dev
10368
resources:
@@ -162,6 +127,13 @@ rules:
162127
- patch
163128
- update
164129
- watch
130+
- apiGroups:
131+
- apps
132+
resources:
133+
- deployments/finalizers
134+
- statefulsets/finalizers
135+
verbs:
136+
- update
165137
- apiGroups:
166138
- apps
167139
resources:
@@ -174,27 +146,22 @@ rules:
174146
- update
175147
- watch
176148
- apiGroups:
177-
- apps
178-
resources:
179-
- deployments/finalizers
180-
- statefulsets/finalizers
181-
verbs:
182-
- update
183-
- apiGroups:
184-
- kuadrant.io
149+
- cert-manager.io
185150
resources:
186-
- kuadrants
151+
- certificates
152+
- issuers
187153
verbs:
188154
- create
155+
- delete
189156
- get
190157
- list
191158
- patch
192159
- update
193160
- watch
194161
- apiGroups:
195-
- discovery.k8s.io
162+
- cert-manager.io
196163
resources:
197-
- endpointslices
164+
- clusterissuers
198165
verbs:
199166
- get
200167
- list
@@ -208,13 +175,33 @@ rules:
208175
- list
209176
- watch
210177
- apiGroups:
211-
- mlflow.opendatahub.io
178+
- discovery.k8s.io
212179
resources:
213-
- mlflows
180+
- endpointslices
181+
verbs:
182+
- get
183+
- list
184+
- watch
185+
- apiGroups:
186+
- k8s.keycloak.org
187+
resources:
188+
- keycloakrealmimports
189+
- keycloaks
214190
verbs:
215191
- create
216192
- get
217193
- list
194+
- patch
195+
- update
196+
- apiGroups:
197+
- kuadrant.io
198+
resources:
199+
- kuadrants
200+
verbs:
201+
- create
202+
- get
203+
- list
204+
- patch
218205
- update
219206
- watch
220207
- apiGroups:
@@ -224,8 +211,18 @@ rules:
224211
verbs:
225212
- get
226213
- list
214+
- update
227215
- watch
216+
- apiGroups:
217+
- mlflow.opendatahub.io
218+
resources:
219+
- mlflows
220+
verbs:
221+
- create
222+
- get
223+
- list
228224
- update
225+
- watch
229226
- apiGroups:
230227
- networking.k8s.io
231228
resources:
@@ -249,30 +246,15 @@ rules:
249246
- operator.openshift.io
250247
resources:
251248
- networks
252-
- zerotrustworkloadidentitymanagers
253-
verbs:
254-
- get
255-
- list
256-
- apiGroups:
257-
- k8s.keycloak.org
258-
resources:
259-
- keycloakrealmimports
260-
- keycloaks
261249
verbs:
262-
- create
263250
- get
264-
- list
265-
- patch
266-
- update
267251
- apiGroups:
268-
- route.openshift.io
252+
- operator.openshift.io
269253
resources:
270-
- routes
254+
- zerotrustworkloadidentitymanagers
271255
verbs:
272-
- create
273256
- get
274257
- list
275-
- update
276258
- apiGroups:
277259
- operator.tekton.dev
278260
resources:
@@ -290,17 +272,16 @@ rules:
290272
- get
291273
- apiGroups:
292274
- rbac.authorization.k8s.io
293-
resources:
294-
- clusterroles
295275
resourceNames:
296-
- mlflow-operator-mlflow-integration
297276
- mlflow-operator-mlflow-edit
277+
- mlflow-operator-mlflow-integration
278+
resources:
279+
- clusterroles
298280
verbs:
299281
- bind
300282
- apiGroups:
301283
- rbac.authorization.k8s.io
302284
resources:
303-
- roles
304285
- rolebindings
305286
verbs:
306287
- create
@@ -309,3 +290,22 @@ rules:
309290
- list
310291
- update
311292
- watch
293+
- apiGroups:
294+
- rbac.authorization.k8s.io
295+
resources:
296+
- roles
297+
verbs:
298+
- create
299+
- get
300+
- list
301+
- update
302+
- watch
303+
- apiGroups:
304+
- route.openshift.io
305+
resources:
306+
- routes
307+
verbs:
308+
- create
309+
- get
310+
- list
311+
- update

kagenti-operator/config/rbac/role.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ rules:
1717
- patch
1818
- update
1919
- watch
20+
- apiGroups:
21+
- ""
22+
resources:
23+
- endpoints
24+
verbs:
25+
- get
2026
- apiGroups:
2127
- ""
2228
resources:

kagenti-operator/internal/controller/agentcard_networkpolicy_controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ type AgentCardNetworkPolicyReconciler struct {
5959
KubeAPIServerCIDRs []string
6060
}
6161

62+
// +kubebuilder:rbac:groups=core,resources=endpoints,verbs=get
6263
// +kubebuilder:rbac:groups=networking.k8s.io,resources=networkpolicies,verbs=get;list;watch;create;update;patch;delete
6364
// +kubebuilder:rbac:groups=core,resources=pods,verbs=get;list;watch;update;patch
6465
// +kubebuilder:rbac:groups=agents.x-k8s.io,resources=sandboxes,verbs=get;list;watch

0 commit comments

Comments
 (0)