Это моя существующая привязка к кластеру
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: example-role
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: test-role
subjects:
- kind: ServiceAccount
name: test-sa
namespace: ns1
Я планирую добавить тот же ServiceAccount (test-sa) в другое пространство имен (например, ns2) и связать его с моей «тестовой ролью ClusterRole» .
то, что я пробовал
subjects:
- kind: ServiceAccount
name: test-sa
namespace: ns2
Я попытался применить указанный выше файл yaml, например,
kubectl patch clusterrolebinding <clusterrolebinding-name> --type="strategic" --patch "$(cat role.yaml)"
Результат
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: example-role
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: test-role
subjects:
- kind: ServiceAccount
name: test-sa
namespace: ns2
Это добавление ClusterRoleBinding с sa в новое пространство имен, но моя существующая привязка в пространстве имен ns1 была удалена .. есть ли способ объединить новые изменения вместо замены ..iam пытается сделать это автоматически .. как сценарий bash для редактируя эту привязку cluserrolebinding, поэтому я выбрал патч kubectl