Подключение арендатора к кластеру Communishift
Ресурсы
-
[1] Playbook: https://forge.fedoraproject.org/infra/ansible/src/branch/main/playbooks/manual/communishift.yml
-
[2] Роль: https://forge.fedoraproject.org/infra/ansible/src/branch/main/roles/communishift
-
[3] Кластер: https://console-openshift-console.apps.fedora.cj14.p1.openshiftapps.com
-
[4] CAO: https://pagure.io/cpe/communishift/blob/main/f/CommunishiftAuthorization
Подключение
Чтобы подключить арендатора, выполните следующие шаги:
Добавление имени проекта в Playbook
Участники группы sysadmin-openshift могут запускать этот playbook по ссылке [1]. Он содержит список проектов communishift. При подключении добавьте новое имя проекта в словарь communishift_projects в файле inventory/group_vars/all. При необходимости квоты ресурсов могут быть переопределены в том же словаре вместо значений по умолчанию.
Примечание: имена проектов обязательно должны начинаться с communishift-, например communishift-dev-test.
Посмотрите следующий пример добавления проектов communishift-eventbot и communishift-fedora-review-service:
communishift_projects:
communishift-eventbot:
name: communishift-eventbot
communishift-fedora-review-service:
name: communishift-fedora-review-service
do_not_delete: true # Помечено как не удалять 2024-10-21
...
Чтобы пометить проект как такой, который НЕ должен удаляться в рамках скрипта очистки Communishift, отметьте его логическим значением, как показано ниже. Также полезно указывать дату, чтобы можно было сразу увидеть, когда проектам был присвоен этот особый статус: do_not_delete: true # Помечено как не удалять ГГГГ-ММ-ДД
|
Добавление новой группы проекта в IPA
В IPA должна быть создана группа, соответствующая имени группы, добавленной в playbook на предыдущем шаге. Пожалуйста, убедитесь, что участник сообщества, запрашивающий доступ к кластеру, также добавлен в эту группу в IPA и назначен спонсором. Так он сможет в дальнейшем самостоятельно управлять участниками своей группы.
Запуск playbook
Запустите playbook на batcave.
sudo rbac-playbook manual/communishift.yml
Это создаст проект, создаст хранилище EFS в AWS, а затем создаст Secret в проекте, содержащий учётные данные для создания объекта SharedVolume.
напр.:
apiVersion: aws-efs.managed.openshift.io/v1alpha1 kind: SharedVolume metadata: name: communishift-dev-test-sharedvolume namespace: communishift-dev-test spec: accessPointID: fsap-xxxxx fileSystemID: fs-xxxx
Это также применяет ResourceQuota к проекту. Это устанавливает верхний предел объёма ресурсов, которые могут быть потреблены внутри проекта. Значение намеренно установлено низким и может быть изменено позднее индивидуально в зависимости от потребностей арендатора.
Авторизация участников проекта для доступа к кластеру
Оператор CommunishiftAuthorization [4] управляет выдачей разрешений на доступ к кластеру. Это основано на наличии имени группы в IPA. Каждые 20 минут CAO получает из IPA через fasjson список групп, соответствующих шаблону communishift-*, затем проверяет существование этой группы в Openshift и синхронизирует пользователей между группой IPA и Openshift. Этот процесс выполняется автоматически каждые 20 минут.
Want to help? Learn how to contribute to Fedora Docs ›