Если у вас есть кластер OpenShift / OKD Kubernetes, вы должны знать, что пользователи по умолчанию могут создавать проекты / пространства имен без ведома администратора кластера.
В большинстве случаев вы скорее всего хотите отключить эту функцию, чтобы гарантировать, что вычислительные ресурсы кластера не используются не по назначению.
Разработчики должны следовать правильному процессу развертывания приложений в среде кластеров OpenShift.
Отключение самостоятельной подготовки проекта в OpenShift
Сначала просмотрите использование привязки роли кластера self-provisioners с помощью команды ниже.
$ 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
oc patch clusterrolebinding.rbac self-provisioners -p '{"subjects": null}'
Вы должны получить вывод, как показано ниже:
clusterrolebinding.rbac.authorization.k8s.io/self-provisioners patched
Если привязка роли кластера self-provisioners связывает роль self-provisioners с большим количеством пользователей, групп или учетных записей служб, чем system:authenticated: oauth group, выполните следующую команду:
oc adm policy \
remove-cluster-role-from-group self-provisioner \
system:authenticated:oauth
Вы можете применить патч напрямую с помощью следующей команды:
oc patch clusterrolebinding.rbac self-provisioners -p '{ "metadata": { "annotations": { "rbac.authorization.kubernetes.io/autoupdate": "false" } } }'
oc edit clusterrolebinding.rbac self-provisioners
Теперь значение должно быть установлено на false.
..... metadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "false" .....
Войдите в систему как аутентифицированный пользователь и убедитесь, что он больше не может самостоятельно подготовить проект:
$ oc new-project test
Error from server (Forbidden): You may not request a new project via this API.
Настройка сообщений о запросе создания проектов в OpenShift
Нам нужно настроить сообщение, которое будут получать пользователи OpenShift при попытке создания проектов из CLI или веб-консоли.
В CLI
Войдите в систему как пользователь с правами кластера-администратора и измените ресурс project.config.openshift.io/cluster:
$ oc edit project.config.openshift.io/cluster
Обновите параметр projectRequestMessage со значением вашего настраиваемого сообщения:
projectRequestMessage: "Чтобы запросить проект, свяжитесь с администрацией OpenShift по адресу ocpadmins@itsecforu.ru"
Из веб-панели
Откройте веб-консоль OpenShift и перейдите на страницу Administration → Cluster Settings
Нажмите на YAML, чтобы отредактировать его.
projectRequestMessage: "Чтобы запросить проект, свяжитесь с администрацией OpenShift по адресу ocpadmins@itsecforu.ru"