Проекты (projects) в OpenShift – это единица ограничения доступа или наоборот совместной работы.
Чтобы разработчики могли развертывать приложения, они должны быть участниками проекта.
В рамках проекта участники могут иметь разные роли – администратор, права редактировать, просматривать и т. д.
Как администратор проекта вы можете добавлять пользователей в кластер и назначать им определенные права.
Ниже приведены предварительно определенные роли в OpenShift.
- edit: Пользователь, который может изменять большинство объектов в проекте, но не имеет права просматривать или изменять роли или привязки.
- admin: Пользователь-администратор имеет права просматривать любой ресурс в проекте и изменять любой ресурс в проекте, кроме квоты.
- cluster-admin: Суперпользователь, который может выполнять любые действия в любом проекте. При привязке к пользователю с помощью local binding они получают полный контроль над квотой и всеми действиями для каждого ресурса в проекте.
- basic-user: Пользователь, который может получить основную информацию о проектах и пользователях.
- cluster-status: Пользователь, который может получить основную информацию о состоянии кластера.
- self-provisioner: Пользователь, который может создавать свои собственные проекты.
- view: Пользователь, который не может вносить никаких изменений, но может видеть большинство объектов в проекте. Они не могут просматривать или изменять роли или привязки.
Создание проекта на OpenShift
Создайте проект на OpenShift.
Это можно сделать с помощью интерфейса командной строки или веб-консоли.
$ oc new-project test
Now using project "test" on server "https://api.devocp.example.com:6443".
Затем вы можете перечислить все доступные проекты, чтобы убедиться, что доступен только что созданный.
$ oc get projects
Предоставление доступа пользователю к проекту OpenShift
У вас должны быть пользователи, которые уже получили доступ к кластеру OpenShift, прежде чем вы сможете предоставить им права для доступа к проекту.
Есть несколько провайдеров, которые могут использоваться для аутентификации пользователей в OpenShift, например HTPassw:
☸️ Управление пользователями OpenShift / OKD с индентити провайдером HTPasswd
Вы можете получить список пользователей, которые уже вошли в кластер, с помощью команды oc get users:
$ oc get users
JKMUTAI 17a06002-b543-4fa9-bfa8-92e510646d0a Josphat Mutai
Используемый синтаксис:
$ oc adm policy add-role-to-user <role> <user> -n <projectname>
$ oc adm policy add-role-to-user edit JKMUTAI -n test
clusterrole.rbac.authorization.k8s.io/edit added: "JKMUTAI"
Для Cluster role используйте команду:
$ oc adm policy add-cluster-role-to-user edit JKMUTAI -n test
Чтобы удалить роль пользователя, используйте:
$ oc adm policy remove-role-from-user <role> <user> -n <projectname>
$ oc adm policy remove-cluster-role-from-user <role> <user> -n <projectname>
Если вы хотите получить список пользователей, имеющих доступ к проекту, выполните следующую команду:
$ oc get rolebindings -n <projectname>
$ oc get rolebindings <rolename> -n <projectname>
$ oc login
Переключитесь на проект командой:
$ oc project test
Already on project "test" on server "https://api.example.com:6443".
Разверните тестовое приложение.
oc apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: command-demo
labels:
purpose: demonstrate-command
spec:
containers:
- name: command-demo-container
image: debian
command: ["printenv"]
args: ["HOSTNAME", "KUBERNETES_PORT"]
restartPolicy: OnFailure
EOF
Подтвердите, что контейнер запущен:
$ oc get pods