training-operator: RBAC¶
ServiceAccount bindings, roles, and resource permissions.
RBAC Overview¶
This component defines a large RBAC surface (181 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)"]
training_operator["training-operator\n31 resources"]:::wide
end
subgraph med["Medium Scope (10-30)"]
kubeflow_training_edit["kubeflow-training-edit\n15 resources"]:::medium
kubeflow_training_view["kubeflow-training-view\n13 resources"]:::medium
training_edit["training-edit\n12 resources"]:::medium
training_view["training-view\n12 resources"]:::medium
end
subgraph nar["Narrow Scope (<10)"]
kubeflow_training_admin["kubeflow-training-admin"]:::narrow
training_operator_webhook["training-operator-webhook\n1 resources"]:::narrow
end
subj_training_operator["training-operator\nServiceAccount"]:::subject
subj_training_operator -->|binds| training_operator
subj_training_operator -->|binds| training_operator_webhook
Bindings¶
Subject-to-role mappings defining who has access to what.
| Binding | Type | Role | Subject |
|---|---|---|---|
| training-operator | ClusterRoleBinding | training-operator | ServiceAccount/training-operator |
| training-operator-webhook | RoleBinding | training-operator-webhook | ServiceAccount/training-operator |
Role Details¶
Per-rule breakdown of API groups, resources, and verbs for each role.
| Role | Kind | API Groups | Resources | Verbs |
|---|---|---|---|---|
| kubeflow-training-edit | ClusterRole | mpijobs, tfjobs, pytorchjobs, xgboostjobs, paddlejobs, jaxjobs | create, delete, get, list, patch, update, watch | |
| kubeflow-training-edit | ClusterRole | mpijobs/status, tfjobs/status, pytorchjobs/status, xgboostjobs/status, paddlejobs/status, jaxjobs/status | get | |
| kubeflow-training-edit | ClusterRole | localqueues | get, list | |
| kubeflow-training-edit | ClusterRole | persistentvolumeclaims | create, delete, get, list, watch | |
| kubeflow-training-edit | ClusterRole | events | get, list, watch | |
| kubeflow-training-view | ClusterRole | mpijobs, tfjobs, pytorchjobs, xgboostjobs, paddlejobs, jaxjobs | get, list, watch | |
| kubeflow-training-view | ClusterRole | mpijobs/status, tfjobs/status, pytorchjobs/status, xgboostjobs/status, paddlejobs/status, jaxjobs/status | get | |
| kubeflow-training-view | ClusterRole | localqueues | get, list | |
| training-edit | ClusterRole | mpijobs, tfjobs, pytorchjobs, mxjobs, xgboostjobs, paddlejobs | create, delete, get, list, patch, update, watch | |
| training-edit | ClusterRole | mpijobs/status, tfjobs/status, pytorchjobs/status, mxjobs/status, xgboostjobs/status, paddlejobs/status | get | |
| training-operator | ClusterRole | configmaps | create, list, update, watch | |
| training-operator | ClusterRole | events | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | pods | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | pods/exec | create | |
| training-operator | ClusterRole | serviceaccounts | create, get, list, watch | |
| training-operator | ClusterRole | services | create, delete, get, list, watch | |
| training-operator | ClusterRole | validatingwebhookconfigurations | get, list, update, watch | |
| training-operator | ClusterRole | horizontalpodautoscalers | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | jaxjobs | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | jaxjobs/finalizers | update | |
| training-operator | ClusterRole | jaxjobs/status | get, patch, update | |
| training-operator | ClusterRole | mpijobs | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | mpijobs/finalizers | update | |
| training-operator | ClusterRole | mpijobs/status | get, patch, update | |
| training-operator | ClusterRole | paddlejobs | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | paddlejobs/finalizers | update | |
| training-operator | ClusterRole | paddlejobs/status | get, patch, update | |
| training-operator | ClusterRole | pytorchjobs | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | pytorchjobs/finalizers | update | |
| training-operator | ClusterRole | pytorchjobs/status | get, patch, update | |
| training-operator | ClusterRole | tfjobs | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | tfjobs/finalizers | update | |
| training-operator | ClusterRole | tfjobs/status | get, patch, update | |
| training-operator | ClusterRole | xgboostjobs | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | xgboostjobs/finalizers | update | |
| training-operator | ClusterRole | xgboostjobs/status | get, patch, update | |
| training-operator | ClusterRole | rolebindings | create, list, update, watch | |
| training-operator | ClusterRole | roles | create, list, update, watch | |
| training-operator | ClusterRole | podgroups | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | podgroups | create, delete, get, list, patch, update, watch | |
| training-operator | ClusterRole | networkpolicies | create, delete, get, list, patch, update, watch | |
| training-view | ClusterRole | mpijobs, tfjobs, pytorchjobs, mxjobs, xgboostjobs, paddlejobs | get, list, watch | |
| training-view | ClusterRole | mpijobs/status, tfjobs/status, pytorchjobs/status, mxjobs/status, xgboostjobs/status, paddlejobs/status | get | |
| training-operator-webhook | Role | secrets | get, list, update, watch |
Cluster Roles¶
| Name | Resources | Verbs | Source |
|---|---|---|---|
| kubeflow-training-edit | mpijobs, tfjobs, pytorchjobs, xgboostjobs, paddlejobs, jaxjobs | create, delete, get, list, patch, update, watch | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-edit | mpijobs/status, tfjobs/status, pytorchjobs/status, xgboostjobs/status, paddlejobs/status, jaxjobs/status | get | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-edit | localqueues | get, list | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-edit | persistentvolumeclaims | create, delete, get, list, watch | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-edit | events | get, list, watch | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-view | mpijobs, tfjobs, pytorchjobs, xgboostjobs, paddlejobs, jaxjobs | get, list, watch | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-view | mpijobs/status, tfjobs/status, pytorchjobs/status, xgboostjobs/status, paddlejobs/status, jaxjobs/status | get | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| kubeflow-training-view | localqueues | get, list | manifests/overlays/kubeflow/kubeflow-training-roles.yaml |
| training-edit | mpijobs, tfjobs, pytorchjobs, mxjobs, xgboostjobs, paddlejobs | create, delete, get, list, patch, update, watch | manifests/rhoai/kubeflow-training-roles.yaml |
| training-edit | mpijobs/status, tfjobs/status, pytorchjobs/status, mxjobs/status, xgboostjobs/status, paddlejobs/status | get | manifests/rhoai/kubeflow-training-roles.yaml |
| training-operator | configmaps | create, list, update, watch | manifests/base/rbac/role.yaml |
| training-operator | events | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | pods | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | pods/exec | create | manifests/base/rbac/role.yaml |
| training-operator | serviceaccounts | create, get, list, watch | manifests/base/rbac/role.yaml |
| training-operator | services | create, delete, get, list, watch | manifests/base/rbac/role.yaml |
| training-operator | validatingwebhookconfigurations | get, list, update, watch | manifests/base/rbac/role.yaml |
| training-operator | horizontalpodautoscalers | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | jaxjobs | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | jaxjobs/finalizers | update | manifests/base/rbac/role.yaml |
| training-operator | jaxjobs/status | get, patch, update | manifests/base/rbac/role.yaml |
| training-operator | mpijobs | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | mpijobs/finalizers | update | manifests/base/rbac/role.yaml |
| training-operator | mpijobs/status | get, patch, update | manifests/base/rbac/role.yaml |
| training-operator | paddlejobs | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | paddlejobs/finalizers | update | manifests/base/rbac/role.yaml |
| training-operator | paddlejobs/status | get, patch, update | manifests/base/rbac/role.yaml |
| training-operator | pytorchjobs | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | pytorchjobs/finalizers | update | manifests/base/rbac/role.yaml |
| training-operator | pytorchjobs/status | get, patch, update | manifests/base/rbac/role.yaml |
| training-operator | tfjobs | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | tfjobs/finalizers | update | manifests/base/rbac/role.yaml |
| training-operator | tfjobs/status | get, patch, update | manifests/base/rbac/role.yaml |
| training-operator | xgboostjobs | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | xgboostjobs/finalizers | update | manifests/base/rbac/role.yaml |
| training-operator | xgboostjobs/status | get, patch, update | manifests/base/rbac/role.yaml |
| training-operator | rolebindings | create, list, update, watch | manifests/base/rbac/role.yaml |
| training-operator | roles | create, list, update, watch | manifests/base/rbac/role.yaml |
| training-operator | podgroups | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | podgroups | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-operator | networkpolicies | create, delete, get, list, patch, update, watch | manifests/base/rbac/role.yaml |
| training-view | mpijobs, tfjobs, pytorchjobs, mxjobs, xgboostjobs, paddlejobs | get, list, watch | manifests/rhoai/kubeflow-training-roles.yaml |
| training-view | mpijobs/status, tfjobs/status, pytorchjobs/status, mxjobs/status, xgboostjobs/status, paddlejobs/status | get | manifests/rhoai/kubeflow-training-roles.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. 1 markers found.
| File | Line | Groups | Resources | Verbs |
|---|---|---|---|---|
pkg/cert/cert.go:43 |
43 | "admissionregistration.k8s.io" | validatingwebhookconfigurations | get, list, watch, update |