Как составить список пользователей с ролью 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'
Другие вопросы по тегам