为什么我们需要一次又一次地在这个定义中写入 apiGroup key,如果每次都一样的话:
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
Run Code Online (Sandbox Code Playgroud)
apiGroup: rbac.authorization.k8s.io这使得 yaml 过于多余,有什么办法可以解决这个问题。我们可以跳过这个键吗?或者我们可以在全球某个地方声明这一点吗?
好问题。我能想到的理由是,例如,将来可能会支持不同的 API,rbacv2.authorization.k8s.io并且出于兼容性原因,您不希望将引用和主题限制为仅一种。
我对此的看法是,除了“主题”之外,最好还有另一个可选的全局字段,RoleBinding称为“bindingApigroup”。请随意提出问题:kind/feature、sig/auth 和/或 sig/api-machinery。
此外, sig-auth设计提案中可能有更多的基本原理/细节 。