Skip to content

Commit 7456639

Browse files
authored
refactor: consolidate security annotations (#97)
Trimming down existing wildcard RBAC permissions via kubebuilder markers. Tested on an OpenShift 4.18.17 | Kubernetes v1.31.9 cluster. Closes #18 Approved-by: VaishnaviHire
1 parent d88d3f3 commit 7456639

File tree

4 files changed

+61
-71
lines changed

4 files changed

+61
-71
lines changed

config/rbac/role.yaml

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,25 @@ rules:
99
resources:
1010
- configmaps
1111
verbs:
12-
- '*'
13-
- apiGroups:
14-
- ""
15-
resources:
16-
- deployments
17-
- persistentvolumes
18-
- pods
19-
- pods/exec
20-
- pods/log
21-
verbs:
22-
- '*'
12+
- create
13+
- get
14+
- list
15+
- patch
16+
- update
17+
- watch
2318
- apiGroups:
2419
- ""
2520
resources:
2621
- persistentvolumeclaims
27-
- services
2822
verbs:
29-
- '*'
23+
- create
24+
- get
25+
- list
26+
- watch
3027
- apiGroups:
3128
- ""
3229
resources:
33-
- serviceaccounts
34-
- services/finalizers
30+
- services
3531
verbs:
3632
- create
3733
- delete
@@ -45,13 +41,13 @@ rules:
4541
resources:
4642
- deployments
4743
verbs:
48-
- '*'
49-
- apiGroups:
50-
- apps
51-
resources:
52-
- deployments/finalizers
53-
verbs:
54-
- '*'
44+
- create
45+
- delete
46+
- get
47+
- list
48+
- patch
49+
- update
50+
- watch
5551
- apiGroups:
5652
- llamastack.io
5753
resources:
@@ -83,4 +79,10 @@ rules:
8379
resources:
8480
- networkpolicies
8581
verbs:
86-
- '*'
82+
- create
83+
- delete
84+
- get
85+
- list
86+
- patch
87+
- update
88+
- watch

controllers/kubebuilder_rbac.go

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,21 @@
11
package controllers
22

3+
// LlamaStackDistribution CRD permissions
34
//+kubebuilder:rbac:groups=llamastack.io,resources=llamastackdistributions,verbs=get;list;watch;create;update;patch;delete
45
//+kubebuilder:rbac:groups=llamastack.io,resources=llamastackdistributions/status,verbs=get;update;patch
56
//+kubebuilder:rbac:groups=llamastack.io,resources=llamastackdistributions/finalizers,verbs=update
67

7-
// +kubebuilder:rbac:groups="core",resources=serviceaccounts,verbs=get;list;watch;create;update;patch;delete
8+
// Deployment permissions - controller creates and manages deployments
9+
//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
810

9-
// +kubebuilder:rbac:groups="core",resources=pods/log,verbs=*
10-
// +kubebuilder:rbac:groups="core",resources=pods/exec,verbs=*
11-
// +kubebuilder:rbac:groups="core",resources=pods,verbs=*
11+
// Service permissions - controller creates and manages services
12+
//+kubebuilder:rbac:groups="",resources=services,verbs=get;list;watch;create;update;patch;delete
1213

13-
// +kubebuilder:rbac:groups="core",resources=persistentvolumes,verbs=*
14-
// +kubebuilder:rbac:groups="core",resources=persistentvolumeclaims,verbs=*
14+
// PVC permissions - controller creates PVCs (immutable after creation, no update/patch needed)
15+
//+kubebuilder:rbac:groups="",resources=persistentvolumeclaims,verbs=get;list;watch;create
1516

16-
// +kubebuilder:rbac:groups="apps",resources=deployments/finalizers,verbs=*
17-
// +kubebuilder:rbac:groups="core",resources=deployments,verbs=*
18-
// +kubebuilder:rbac:groups="apps",resources=deployments,verbs=*
17+
// ConfigMap permissions - controller reads user configmaps and manages operator config configmaps
18+
//+kubebuilder:rbac:groups="",resources=configmaps,verbs=get;list;watch;create;update;patch
1919

20-
// +kubebuilder:rbac:groups="core",resources=services/finalizers,verbs=create;delete;list;update;watch;patch;get
21-
// +kubebuilder:rbac:groups="core",resources=services,verbs=get;create;watch;update;patch;list;delete
22-
// +kubebuilder:rbac:groups="core",resources=services,verbs=*
23-
24-
// +kubebuilder:rbac:groups="core",resources=configmaps,verbs=*
25-
26-
// +kubebuilder:rbac:groups="networking.k8s.io",resources=networkpolicies,verbs=*
20+
// NetworkPolicy permissions - controller creates and manages network policies
21+
//+kubebuilder:rbac:groups=networking.k8s.io,resources=networkpolicies,verbs=get;list;watch;create;update;patch;delete

controllers/llamastackdistribution_controller.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,6 @@ import (
5353
"sigs.k8s.io/kustomize/kyaml/filesys"
5454
)
5555

56-
//+kubebuilder:rbac:groups=llamastack.io,resources=llamastackdistributions,verbs=get;list;watch;create;update;patch;delete
57-
//+kubebuilder:rbac:groups=llamastack.io,resources=llamastackdistributions/status,verbs=get;update;patch
58-
//+kubebuilder:rbac:groups=llamastack.io,resources=llamastackdistributions/finalizers,verbs=update
59-
//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
60-
//+kubebuilder:rbac:groups="",resources=services,verbs=get;list;watch;create;update;patch;delete
61-
//+kubebuilder:rbac:groups="",resources=persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete
62-
//+kubebuilder:rbac:groups="",resources=configmaps,verbs=get;list;watch
63-
//+kubebuilder:rbac:groups=networking.k8s.io,resources=networkpolicies,verbs=get;list;watch;create;update;patch;delete
64-
6556
const (
6657
operatorConfigData = "llama-stack-operator-config"
6758
manifestsBasePath = "manifests/base"

release/operator.yaml

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2244,29 +2244,25 @@ rules:
22442244
resources:
22452245
- configmaps
22462246
verbs:
2247-
- '*'
2248-
- apiGroups:
2249-
- ""
2250-
resources:
2251-
- deployments
2252-
- persistentvolumes
2253-
- pods
2254-
- pods/exec
2255-
- pods/log
2256-
verbs:
2257-
- '*'
2247+
- create
2248+
- get
2249+
- list
2250+
- patch
2251+
- update
2252+
- watch
22582253
- apiGroups:
22592254
- ""
22602255
resources:
22612256
- persistentvolumeclaims
2262-
- services
22632257
verbs:
2264-
- '*'
2258+
- create
2259+
- get
2260+
- list
2261+
- watch
22652262
- apiGroups:
22662263
- ""
22672264
resources:
2268-
- serviceaccounts
2269-
- services/finalizers
2265+
- services
22702266
verbs:
22712267
- create
22722268
- delete
@@ -2280,13 +2276,13 @@ rules:
22802276
resources:
22812277
- deployments
22822278
verbs:
2283-
- '*'
2284-
- apiGroups:
2285-
- apps
2286-
resources:
2287-
- deployments/finalizers
2288-
verbs:
2289-
- '*'
2279+
- create
2280+
- delete
2281+
- get
2282+
- list
2283+
- patch
2284+
- update
2285+
- watch
22902286
- apiGroups:
22912287
- llamastack.io
22922288
resources:
@@ -2318,7 +2314,13 @@ rules:
23182314
resources:
23192315
- networkpolicies
23202316
verbs:
2321-
- '*'
2317+
- create
2318+
- delete
2319+
- get
2320+
- list
2321+
- patch
2322+
- update
2323+
- watch
23222324
---
23232325
apiVersion: rbac.authorization.k8s.io/v1
23242326
kind: ClusterRole

0 commit comments

Comments
 (0)