首页 > 解决方案 > 如何使用 kubectl 补丁将 PolicyRule 添加到现有角色

问题描述

我有以下错误消息:

用户“system:serviceaccount:qserv:argo-workflow”无法在命名空间“qserv”的 API 组“batch”中创建资源“jobs”

这是相关的Role

kubectl describe role argo-workflows-workflow
Name:         argo-workflows-workflow
Labels:       app.kubernetes.io/managed-by=Helm
Annotations:  meta.helm.sh/release-name: argo-workflows
              meta.helm.sh/release-namespace: qserv
PolicyRule:
  Resources  Non-Resource URLs  Resource Names  Verbs
  ---------  -----------------  --------------  -----
  pods       []                 []              [get watch patch]
  pods/log   []                 []              [get watch]

您能否提供kubectl patch允许argo-workflows-workflow创建角色的正确命令Jobs

标签: kuberneteskubectlargo-workflows

解决方案


此命令完成工作并允许成功运行 argo 工作流程:

kubectl patch roles.rbac.authorization.k8s.io argo-workflows-workflow --type='json' -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": ["batch"],"resources": ["jobs"],"verbs": ["create", "get", "watch"]} }]

推荐阅读