Как составить список пользователей с ролью cluster-admin в OpenShift?
Я могу добавить пользователей в кластерную роль "cluster-admin" с помощью:
oc adm policy add-cluster-role-to-user cluster-admin <user>
Но как я могу перечислить всех пользователей с ролью cluster-admin?
Среда: OpenShift 3.x
5 ответов
Нашел это сам
Это в RoleBinding[cluster-admins]:
раздел:
oc describe clusterPolicyBindings :default
С jq
Вы можете получить список пользователей одной командой:
oc get --all-namespaces --output json clusterPolicyBindings | jq '.items[].roleBindings[] | select(.name=="cluster-admins") | .roleBinding.userNames'
Для OpenShift 3.7 и новее:
oc get clusterrolebindings -o json | jq '.items[] | select(.metadata.name=="cluster-admins") | .userNames'
В openshift 3.9 администраторы кластера расположены в разных словарях (cluster-admin-0,cluster-admin-1 и т. д.). Чтобы перечислить их:
oc get clusterrolebinding -o json | jq '.items[] | select(.metadata.name | startswith("cluster-admin")) | .userNames'
С моей стороны команда для Openshift 3.7+ предназначена для администраторов кластера:
oc get --all-namespaces --output json clusterPolicyBindings | jq '.items[].roleBindings[] | select(.name=="cluster-admin") | .roleBinding.userNames'
Для роли читателя кластера:
oc get clusterrolebindings -o json | jq '.items[] | select(.metadata.name=="cluster-readers") | .userNames'
Большинство из приведенных выше ответов не касаются вопроса ОП:
Но как мне перечислить всех пользователей с ролью администратора кластера?
Вместо этого они привлекают пользователей к очень специфической кластерной привязке с именемcluster-admins
, не все пользователи, принадлежащие к какой-либо привязке ролей кластера, которая получаетClusterRole/cluster-admin
.
Для этого в OpenShift 4.8 вы сначала фильтруете роль, назначенную привязке ролей кластера, а затем получаете пользователей.
oc get clusterrolebindings -o json |jq '.items[] |select(.roleRef.name=="cluster-admin") |.subjects[] |select(.kind=="User") |.name'
Опеншифт 4.8
oc get clusterrolebindings -o json |
jq '.items[] | select(.metadata.name=="cluster-admins") | .subjects[].name'