Skip to content

Commit cb9cf4c

Browse files
authored
Merge pull request #282 from NearNodeFlash/flux-pods-perms
Add a Role with core group privs for the WLM
2 parents 5859fea + 545a9f8 commit cb9cf4c

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

docs/guides/rbac-for-users/readme.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ The kubeconfig file should be placed in a location where HPE employees have read
6868
The next step is to create ClusterRole and ClusterRoleBinding resources. The ClusterRole provided allows viewing all cluster and namespace scoped resources, but disallows creating, deleting, or modifying any resources.
6969

7070
ClusterRole
71+
7172
```yaml
7273
apiVersion: rbac.authorization.k8s.io/v1
7374
kind: ClusterRole
@@ -80,6 +81,7 @@ rules:
8081
```
8182
8283
ClusterRoleBinding
84+
8385
```yaml
8486
apiVersion: rbac.authorization.k8s.io/v1
8587
kind: ClusterRoleBinding
@@ -138,6 +140,7 @@ If the "flux" user requires only the normal WLM permissions, then create and app
138140
The `dws-workload-manager role is defined in [workload_manager_role.yaml](https://github.com/DataWorkflowServices/dws/blob/master/config/rbac/workload_manager_role.yaml).
139141

140142
ClusterRoleBinding for WLM permissions only:
143+
141144
```yaml
142145
apiVersion: rbac.authorization.k8s.io/v1
143146
kind: ClusterRoleBinding
@@ -158,6 +161,7 @@ If the "flux" user requires the normal WLM permissions as well as some of the NN
158161
The `nnf-workload-manager` role is defined in [workload_manager_nnf_role.yaml](https://github.com/NearNodeFlash/nnf-sos/blob/master/config/rbac/workload_manager_nnf_role.yaml).
159162

160163
ClusterRoleBinding for WLM and NNF permissions:
164+
161165
```yaml
162166
apiVersion: rbac.authorization.k8s.io/v1
163167
kind: ClusterRoleBinding
@@ -173,4 +177,30 @@ roleRef:
173177
apiGroup: rbac.authorization.k8s.io
174178
```
175179

180+
If the "flux" user also requires "get" access to pods and their logs in the "default" namespace, then there is also a namespaced Role resource to provide that access. Create a RoleBinding to associate the "flux" user with the "nnf-workload-manager-coregrp" Role. The "flux" user will be bound to access the NNF resources, across all namespaces, via the ClusterRoleBinding above and it will be bound to access the pod resources, in only the "default" namespace, via this RoleBinding.
181+
182+
```console
183+
kubectl get role -n default nnf-workload-manager-coregrp
184+
```
185+
186+
The `nnf-workload-manager-coregrp` role is defined in [workload_manager_nnf_role_ns.yaml](https://github.com/NearNodeFlash/nnf-sos/blob/master/config/rbac-ns/workload_manager_nnf_role_ns.yaml).
187+
188+
RoleBinding for pod permissions:
189+
190+
```yaml
191+
kind: RoleBinding
192+
apiVersion: rbac.authorization.k8s.io/v1
193+
metadata:
194+
name: flux
195+
namespace: default
196+
subjects:
197+
- kind: User
198+
name: flux
199+
apiGroup: rbac.authorization.k8s.io
200+
roleRef:
201+
kind: Role
202+
name: nnf-workload-manager-coregrp
203+
apiGroup: ""
204+
```
205+
176206
The WLM should then use the kubeconfig file associated with this "flux" user to access the DataWorkflowServices API and the Rabbit system.

0 commit comments

Comments
 (0)