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

时间:2020-03-13 01:01:30

标签: kubernetes kustomize

当我输入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

通过将以下配置附加到上述文件中,我可以为命名空间ClusterRoleBinding添加新的ns3

- 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

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

是否可以使用Kustomize添加新的ClusterRoleBinding而又不删除现有的?

1 个答案:

答案 0 :(得分:2)

在元数据中给它们提供不同的名称。您没有制作一个新的,只是改写了一个。