RoleBinding和ClusterRoleBinding中的Kubernetes RBAC apiGroup字段

时间:2018-10-23 21:38:23

标签: kubernetes rbac

如果每次相同,为什么要一次又一次在此定义中编写apiGroup密钥:

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: web-rw-deployment
 namespace: some-web-app-ns
subjects:
- kind: User
 name: "joesmith@example.com"
 apiGroup: rbac.authorization.k8s.io
- kind: Group
 name: "webdevs"
 apiGroup: rbac.authorization.k8s.io
roleRef:
 kind: Role
 name: web-rw-deployment
 apiGroup: rbac.authorization.k8s.io
  • 这看起来很多余,对于所有内容都是重复的
  • 如果我们需要编写它,其他值是什么
  • 如果字段RBAC apiGroup没有其他值,则k8s应该自动假定该值apiGroup: rbac.authorization.k8s.io

这会使yaml变得多余,是否有任何方法可以解决此问题。我们可以跳过此键吗?或者我们可以在全局某处声明它。

1 个答案:

答案 0 :(得分:4)

好问题。我可以想到的理由是,将来可能会支持不同的API,例如rbacv2.authorization.k8s.io,并且出于兼容性原因,您不想将引用和主题限制为仅一个。

我对此的看法是,除了“主体”之外还为RoleBinding拥有另一个可选的全局字段,将是一件不错的事情,这种主体称为“ bindingApigroup”。随时打开issue:种类/功能,sig / auth和/或sig / api-machinery。

此外,sig-auth设计建议中可能还有更多的理由/细节。