Skip to content

codeflare-operator: RBAC

ServiceAccount bindings, roles, and resource permissions.

RBAC Overview

This component defines a large RBAC surface (95 diagram lines). The graph below groups roles by permission scope.

graph LR
    classDef wide fill:#e74c3c,stroke:#c0392b,color:#fff
    classDef medium fill:#f39c12,stroke:#d68910,color:#fff
    classDef narrow fill:#2ecc71,stroke:#27ae60,color:#fff
    classDef subject fill:#3498db,stroke:#2980b9,color:#fff

    subgraph wide["Wide Scope (>30 resources)"]
    manager_role["manager-role\n34 resources"]:::wide
    end
    subgraph nar["Narrow Scope (<10)"]
    appwrapper_editor_role["appwrapper-editor-role\n2 resources"]:::narrow
    viewer_role["viewer-role\n2 resources"]:::narrow
    leader_election_role["leader-election-role\n3 resources"]:::narrow
    end

    subj_controller_manager["controller-manager\nServiceAccount"]:::subject
    subj_controller_manager -->|binds| manager_role
    subj_controller_manager -->|binds| leader_election_role

Bindings

Subject-to-role mappings defining who has access to what.

Binding Type Role Subject
manager-rolebinding ClusterRoleBinding manager-role ServiceAccount/controller-manager
leader-election-rolebinding RoleBinding leader-election-role ServiceAccount/controller-manager

Role Details

Per-rule breakdown of API groups, resources, and verbs for each role.

Role Kind API Groups Resources Verbs
appwrapper-editor-role ClusterRole appwrappers create, delete, get, list, patch, update, watch
appwrapper-editor-role ClusterRole appwrappers/status get
manager-role ClusterRole events create, patch, update, watch
manager-role ClusterRole nodes get, list, watch
manager-role ClusterRole pods, services create, delete, get, list, patch, update, watch
manager-role ClusterRole secrets get, list, update, watch
manager-role ClusterRole mutatingwebhookconfigurations get, list, update, watch
manager-role ClusterRole validatingwebhookconfigurations get, list, update, watch
manager-role ClusterRole customresourcedefinitions get, list, watch
manager-role ClusterRole deployments, statefulsets create, delete, get, list, patch, update, watch
manager-role ClusterRole tokenreviews create
manager-role ClusterRole subjectaccessreviews create
manager-role ClusterRole jobs create, delete, get, list, patch, update, watch
manager-role ClusterRole ingresses get
manager-role ClusterRole secrets create, delete, get, list, patch, watch
manager-role ClusterRole serviceaccounts create, delete, get, list, patch, update, watch
manager-role ClusterRole services create, delete, get, list, patch, update, watch
manager-role ClusterRole dscinitializations get, list, watch
manager-role ClusterRole jobsets create, delete, get, list, patch, update, watch
manager-role ClusterRole pytorchjobs create, delete, get, list, patch, update, watch
manager-role ClusterRole ingresses create, delete, get, list, patch, update, watch
manager-role ClusterRole networkpolicies create, delete, get, list, patch, update, watch
manager-role ClusterRole rayclusters create, delete, get, list, patch, update, watch
manager-role ClusterRole rayclusters/finalizers update
manager-role ClusterRole rayclusters/status get, patch, update
manager-role ClusterRole rayjobs create, delete, get, list, patch, update, watch
manager-role ClusterRole clusterrolebindings create, delete, get, list, patch, update, watch
manager-role ClusterRole routes, routes/custom-host create, delete, get, list, patch, update, watch
manager-role ClusterRole podgroups create, delete, get, list, patch, update, watch
manager-role ClusterRole podgroups create, delete, get, list, patch, update, watch
manager-role ClusterRole appwrappers create, delete, get, list, patch, update, watch
manager-role ClusterRole appwrappers/finalizers update
manager-role ClusterRole appwrappers/status get, patch, update
viewer-role ClusterRole appwrappers get, list, watch
viewer-role ClusterRole appwrappers/status get
leader-election-role Role configmaps get, list, watch, create, update, patch, delete
leader-election-role Role leases get, list, watch, create, update, patch, delete
leader-election-role Role events create, patch

Cluster Roles

Name Resources Verbs Source
appwrapper-editor-role appwrappers create, delete, get, list, patch, update, watch config/rbac/appwrapper_editor_role.yaml
appwrapper-editor-role appwrappers/status get config/rbac/appwrapper_editor_role.yaml
manager-role events create, patch, update, watch config/rbac/role.yaml
manager-role nodes get, list, watch config/rbac/role.yaml
manager-role pods, services create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role secrets get, list, update, watch config/rbac/role.yaml
manager-role mutatingwebhookconfigurations get, list, update, watch config/rbac/role.yaml
manager-role validatingwebhookconfigurations get, list, update, watch config/rbac/role.yaml
manager-role customresourcedefinitions get, list, watch config/rbac/role.yaml
manager-role deployments, statefulsets create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role tokenreviews create config/rbac/role.yaml
manager-role subjectaccessreviews create config/rbac/role.yaml
manager-role jobs create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role ingresses get config/rbac/role.yaml
manager-role secrets create, delete, get, list, patch, watch config/rbac/role.yaml
manager-role serviceaccounts create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role services create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role dscinitializations get, list, watch config/rbac/role.yaml
manager-role jobsets create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role pytorchjobs create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role ingresses create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role networkpolicies create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role rayclusters create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role rayclusters/finalizers update config/rbac/role.yaml
manager-role rayclusters/status get, patch, update config/rbac/role.yaml
manager-role rayjobs create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role clusterrolebindings create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role routes, routes/custom-host create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role podgroups create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role podgroups create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role appwrappers create, delete, get, list, patch, update, watch config/rbac/role.yaml
manager-role appwrappers/finalizers update config/rbac/role.yaml
manager-role appwrappers/status get, patch, update config/rbac/role.yaml
viewer-role appwrappers get, list, watch config/rbac/appwrapper_viewer_role.yaml
viewer-role appwrappers/status get config/rbac/appwrapper_viewer_role.yaml

Kubebuilder RBAC Markers

Kubebuilder +kubebuilder:rbac markers declare the RBAC requirements of controller reconcilers. These are the source of truth for generated ClusterRole manifests. 16 markers found.

File Line Groups Resources Verbs
pkg/controllers/appwrapper_controller.go:22 22 workload.codeflare.dev appwrappers get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:23 23 workload.codeflare.dev appwrappers/status get, update, patch
pkg/controllers/appwrapper_controller.go:24 24 workload.codeflare.dev appwrappers/finalizers update
pkg/controllers/appwrapper_controller.go:27 27 "" events create, watch, update, patch
pkg/controllers/appwrapper_controller.go:30 30 "" pods, services get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:31 31 apps deployments, statefulsets get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:32 32 batch jobs get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:33 33 scheduling.sigs.k8s.io podgroups get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:34 34 scheduling.x-k8s.io podgroups get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:35 35 kubeflow.org pytorchjobs get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:36 36 ray.io rayclusters get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:37 37 ray.io rayjobs get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:38 38 jobset.x-k8s.io jobsets get, list, watch, create, update, patch, delete
pkg/controllers/appwrapper_controller.go:41 41 "" nodes get, list, watch
pkg/controllers/appwrapper_webhook.go:24 24 authorization.k8s.io subjectaccessreviews create
pkg/controllers/appwrapper_webhook.go:25 25 apiextensions.k8s.io customresourcedefinitions list