如何为用户设置 RBAC 以在特定命名空间中提交 Argo 工作流?

How to set RBAC for a user to submit Argo workflow in a specific namespace?

我正在检查 Argo,我想为一个用户(或多个用户)授予一个特定的命名空间以使用 Argo 工作流(并让用户访问工件、输出、访问机密等功能)。我已经设置了一个用户并创建了一个命名空间(在 minikube 中测试)。我应该如何为用户、命名空间和 Argo 工作流绑定角色?

这是我现在拥有的角色和角色绑定 yaml 文件。

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [“”] 
  resources: [“pods”]
  verbs: [“get”, “watch”, “list”]
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: user1 
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role 
  name: pod-reader 
  apiGroup: rbac.authorization.k8s.io

谢谢!

很好的指南,可以一步一步地解释如何创建命名空间、用户并授予仅在所选命名空间中使用该用户的权限:

https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/#use-case-1-create-user-with-limited-namespace-access

Step 1: Create the namespace

Step 2: Create the credentials

Step 3: Create the role for managing deployments

Step 4: Bind the role to the user

Step 5: Test the RBAC rule