Skip to content

Commit 5bc541c

Browse files
stubbiclaude
andauthored
fix: add namespaces, pods/exec, pods/log to operator RBAC (#33)
The operator needs to hold all permissions it grants via the sandbox ClusterRole. Without namespaces, pods/exec, and pods/log in the operator's own ClusterRole, Kubernetes RBAC escalation prevention blocks sandbox ClusterRole creation. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8aa4898 commit 5bc541c

3 files changed

Lines changed: 34 additions & 0 deletions

File tree

charts/paperclip-operator/templates/rbac.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ rules:
2525
- apiGroups: [""]
2626
resources: ["pods"]
2727
verbs: ["create", "delete", "get", "list", "patch", "watch"]
28+
- apiGroups: [""]
29+
resources: ["pods/exec"]
30+
verbs: ["create", "get"]
31+
- apiGroups: [""]
32+
resources: ["pods/log"]
33+
verbs: ["get"]
34+
- apiGroups: [""]
35+
resources: ["namespaces"]
36+
verbs: ["create", "get", "list", "delete"]
2837
- apiGroups: [""]
2938
resources: ["events"]
3039
verbs: ["create", "patch"]

config/rbac/role.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ rules:
2626
verbs:
2727
- create
2828
- patch
29+
- apiGroups:
30+
- ""
31+
resources:
32+
- namespaces
33+
verbs:
34+
- create
35+
- delete
36+
- get
37+
- list
2938
- apiGroups:
3039
- ""
3140
resources:
@@ -37,6 +46,19 @@ rules:
3746
- list
3847
- patch
3948
- watch
49+
- apiGroups:
50+
- ""
51+
resources:
52+
- pods/exec
53+
verbs:
54+
- create
55+
- get
56+
- apiGroups:
57+
- ""
58+
resources:
59+
- pods/log
60+
verbs:
61+
- get
4062
- apiGroups:
4163
- ""
4264
resources:

internal/controller/instance_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ type InstanceReconciler struct {
8585
// +kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch;create;update;patch
8686
// +kubebuilder:rbac:groups="",resources=serviceaccounts,verbs=get;list;watch;create;update;patch;delete
8787
// +kubebuilder:rbac:groups="",resources=pods,verbs=create;delete;get;list;patch;watch
88+
// +kubebuilder:rbac:groups="",resources=pods/exec,verbs=create;get
89+
// +kubebuilder:rbac:groups="",resources=pods/log,verbs=get
90+
// +kubebuilder:rbac:groups="",resources=namespaces,verbs=create;get;list;delete
8891
// +kubebuilder:rbac:groups="",resources=events,verbs=create;patch
8992
// +kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses,verbs=get;list;watch;create;update;patch;delete
9093
// +kubebuilder:rbac:groups=networking.k8s.io,resources=networkpolicies,verbs=get;list;watch;create;update;patch;delete

0 commit comments

Comments
 (0)