如何在不删除现有绑定的情况下在 k8s 中使用 Kustomize 添加新的 ClusterRoleBinding?

How to add a new ClusterRoleBinding with Kustomize in k8s without removing existing bindings?

当我输入 kubectl edit clusterrolebinding foo-role 时,我会看到类似这样的内容:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: foo-role
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: edit
subjects:
- kind: ServiceAccount
  name: foo-user
  namespace: ns1
- kind: ServiceAccount
  name: foo-user
  namespace: ns2

我可以通过将以下配置附加到上面的文件来为命名空间 ns3 添加一个新的 ClusterRoleBinding

- kind: ServiceAccount
  name: foo-user
  namespace: ns3

但是,我想使用 Kustomize 添加新的绑定,而不是手动修改上面的文件。

我尝试应用下面的 .yaml 文件:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: foo-role
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/foo-role
  uid: 64a4a787-d5ab-4c83-be2b-476c1bcb6c96
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: edit
subjects:
- kind: ServiceAccount
  name: foo-user
  namespace: ns3

它确实在命名空间 ns3 中添加了一个新的 ClusterRoleBinding,但它会删除 ns1ns2 的现有 ClusterRoleBinding

有没有办法在不删除现有的情况下使用 Kustomize 添加新的 ClusterRoleBinding

在元数据中给它们不同的名称。你没有制作新的,你只是覆盖了相同的。