role: vài trò
rule: luật
https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/
Đầu tiên thì chúng ta sẽ có 2 rule mặc định là:
role:readonly– read-only access to all resourcesrole:admin– unrestricted access to all resources
Bạn có thể tìm thêm về RBAC Permission Structure
p, <role/user/group>, <resource>, <action>, <appproject>/<object>
p, role:developer, applications, get, nim/*, allow
==> User khi có role là developer thì sẽ được allow “get” các applications trong project nim
Nếu bạn muốn developer có thể edit được deployment thì:p, role:developer, applications, update, nim/*, allow
Team devops của bạn sẽ có quyền admin và mọi người sẽ có quyền get và edit
Và dưới đây là file configmap của mình
apiVersion: v1
data:
policy.csv: |-
p, role:developer, applications, get, nim/*, allow
p, role:developer, applications, get, nim-dev/*, allow
p, role:developer, applications, get, nim-fedramp-dev/*, allow
p, role:developer, applications, update, nim-dev/*, allow
p, role:developer, applications, update, nim-fedramp-dev/*, allow
g, thang.tran@nimtechnology.com, role:admin
g, catalin.costea@nimtechnology.com, role:admin
policy.default: 'role:developer'
scopes: '[''email'']'
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/instance: argocd
app.kubernetes.io/name: argocd-rbac-cm
app.kubernetes.io/part-of: argocd
name: argocd-rbac-cm
namespace: argocd