Как добавить новый ClusterRoleBinding с Kustomize в k8s без удаления существующих привязок?

Когда я печатаю 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, но он удалит существующие ClusterRoleBindings для ns1 а также ns2.

Есть ли способ добавить новый ClusterRoleBinding с Kustomize, не удаляя существующие?

1 ответ

Решение

Дайте им разные имена в метаданных. Вы не сделали новый, вы просто перезаписали тот же самый.

Другие вопросы по тегам