Стандартная операционная процедура: отключение роли self-provisioners

Отключение роли self-provisioners

По умолчанию при аутентификации пользователя в Openshift через Oauth он входит в группу self-provisioners. Эта группа даёт возможность создавать новые проекты. В кластере Fedora мы не хотим, чтобы пользователи могли создавать свои собственные проекты, поскольку у нас есть система, в которой мы создаём проекты и контролируем их администраторов.

Чтобы отключить роль self-provisioner, выполните следующие действия, как описано в документации[1].

oc describe clusterrolebinding.rbac self-provisioners

Name:		self-provisioners
Labels:		<none>
Annotations:	rbac.authorization.kubernetes.io/autoupdate=true
Role:
  Kind:	ClusterRole
  Name:	self-provisioner
Subjects:
  Kind	Name				Namespace
  ----	----				---------
  Group	system:authenticated:oauth

Удалите субъекты, к которым применяется роль self-provisioners.

oc patch clusterrolebinding.rbac self-provisioners -p '{"subjects": null}'

Убедитесь, что изменение выполнено успешно

oc describe clusterrolebinding.rbac self-provisioners
Name:         self-provisioners
Labels:       <none>
Annotations:  rbac.authorization.kubernetes.io/autoupdate: true
Role:
  Kind:  ClusterRole
  Name:  self-provisioner
Subjects:
  Kind  Name  Namespace
  ----  ----  ---------

При обновлении кластера до новой версии, если мы не пометим роль соответствующим образом, разрешения будут восстановлены после завершения обновления.

Проверьте, что значение в настоящее время настроено на восстановление после обновления:

oc get clusterrolebinding.rbac self-provisioners -o yaml
apiVersion: authorization.openshift.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  ...

Мы хотим установить rbac.authorization.kubernetes.io/autoupdate в false. Для этого выполните следующее.

oc patch clusterrolebinding.rbac self-provisioners -p '{ "metadata": { "annotations": { "rbac.authorization.kubernetes.io/autoupdate": "false" } } }'