You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/developers/architecture.md
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -278,6 +278,41 @@ Running with 2 consumers validates:
278
278
- For cluster-scoped resources with IsolationPrefixed, resources are name-prefixed
279
279
- For cluster-scoped resources with IsolationNamespaced, provider CRD is toggled to NamespaceScoped
280
280
281
+
## RBAC Infrastructure
282
+
283
+
### Exported resources
284
+
285
+
Exported resources always use cluster-scoped RBACs:
286
+
287
+
- Aggregating `kube-binder-exports` ClusterRole
288
+
- Bound with `kube-binder-exports` ClusterRoleBinding to `<APIServiceExport.Namespace>/kube-binder` ServiceAccount
289
+
290
+
This aggregating ClusterRole includes all subsequent ClusterRoles that are created for each APIServiceExport.
291
+
292
+
-`kube-binder-<APIServiceExport.Namespace>-<APIServiceExport.Name>` ClusterRole for each APIServiceExport
293
+
- Each resource in the APIServiceExport is granted `"get", "list", "watch", "create", "update", "patch", "delete"` set of verbs.
294
+
- Aggregates into `kube-binder-exports` ClusterRole.
295
+
296
+
### Claimed resources
297
+
298
+
Claimed resources use namespace- or cluster-scoped RBACs depending on the resource scope of the claimed resource itself, as well as backend's informer scope.
299
+
300
+
For cluster-scoped informers:
301
+
302
+
**Scope of the claimed resource** | **Informer scope** | **What happens**
0 commit comments