是否有 kubernetes 角色定义允许命令“kubectl rollout restart deploy <deployment>”?

y-s*_*een 8 rbac kubernetes google-kubernetes-engine

我希望 kubernetes 中的部署有权从集群内自行重启。

我知道我可以创建一个 serviceaccount 并将其绑定到 pod,但我缺少允许'*'该命令的最具体权限的名称(即不仅仅是允许)

kubectl rollout restart deploy <deployment>
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的,并且???是我所缺少的

apiVersion: v1
kind: ServiceAccount
metadata:
  name: restart-sa
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: restarter
rules:
  - apiGroups: ["apps"]
    resources: ["deployments"]
    verbs: ["list", "???"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: testrolebinding
  namespace: default
subjects:
  - kind: ServiceAccount
    name: restart-sa
    namespace: default
roleRef:
  kind: Role
  name: restarter
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: Pod
metadata:
  name: example
spec:
  containers:
  - image: nginx
    name: nginx
  serviceAccountName: restart-sa
Run Code Online (Sandbox Code Playgroud)

Gar*_*ngh 13

我相信以下是重新启动部署所需的最低权限:

rules:
 - apiGroups: ["apps", "extensions"]
   resources: ["deployments"]
   resourceNames: [$DEPLOYMENT]
   verbs: ["get", "patch"]
Run Code Online (Sandbox Code Playgroud)