Kubernetes RBAC apiGroup 字段在 RoleBinding 和 ClusterRoleBindin



为什么我们需要在这个定义中一次又一次地编写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 太多余,有什么办法可以解决这个问题。 我们可以跳过这个键吗?或者我们可以在全球范围内的某个地方宣布这一点。

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

我对此的看法是,除了"主题"之外,最好还有另一个可选的全局RoleBinding字段,称为"绑定Apigroup"。随意打开一个问题:种类/功能,sig/auth和/或sig/api-machinery。

此外,在 sig-auth 设计方案中可能有更多的理由/细节。

最新更新