Тенант
В основе Spirit лежит модель безопасности Multi-tenant RBAC, которая обычно используется в облачных провайдерах. Она призвана обеспечить высокую гранулярность выдачи доступов к группам ресурсов через «арендаторов» — мы называем их тенантами. Структура в общем случае похожа на аналогичную в GCP/AWS.
Схема того, как это работает

Тенант — это группа людей, которые используют какую-то часть платформы или инфраструктуры. Их формируют в зависимости от того, какой части команды вы доверяете доступ и управление определёнными ресурсами.
То есть, если в вашем отделе несколько баз данных, которые принадлежат разным командам, разделите ресурсы на несколько тенантов.
Вне зависимости от вашей роли вы можете посмотреть:
- список тенантов и их участников;
- список репозиториев, в том числе приватных, но без доступа к коду репозитория, если у вас нет роли «GitLab reporter» в нужном тенанте.
Когда вы изменяете ресурсы в рамках тенанта, это влияет на другие объекты. Например:
- Когда создаёте тенант, автоматически создаётся корневая сущность. В GitLab это группа для репозиториев с кодом.
- Когда назначаете людям роль «Gitlab Developer», они автоматически добавляются в группу Gitlab нужного тенанта с ролью «Developer».
Если вы меняете что-либо внутри тенанта, оно сработает только внутри него. Ресурсы интегрируемых систем принадлежат только одному тенанту. То есть, вы не можете заказать базу данных в одном тенанте, но использовать его ещё и в другом.
Войти в тенант
Чтобы работать с ресурсами и проектами своего тенанта, он должен быть указан в верхнем меню у стрелочки. В примере тенант называется «Docs».

Если тенанта пока нет, попросите руководителя вас туда добавить или создайте сами.
Приватный тенант
Если вы хотите скрыть свой тенант или репозиторий внутри него, напишите на почту поддержке из Т-Банка.
Как организовать тенант
Тенант объединяет сервисы с общими целями, сценариями поставки, зависимостями по релизам и ресурсам. Например, тенант «Spirit» объединяет сервисы платформы разработки, которые релизятся вместе, имеют общие CI-пайплайны. Их разрабатывают команды из разных отделов.
Когда нужно больше двух тенантов
Не собирайте в одном тенанте людей, которые имеют разную модель владения над ресурсами в нём.
Представим, что у вас две группы разработчиков, которые разрабатывают сервисы в рамках одной системы:
-
Вариант 1. У одной из них есть приватный репозиторий, доступ к которому должен быть только у членов этой команды.
Решение — выделить отдельный тенант для этой команды с приватным репозиторием. При этом часть других репозиториев могут оставаться в общем для двух команд тенанте, если требуют единых сценариев поставки, кросс-командного ревью и т.п.
-
Вариант 2. Вы хотите ограничить для одной из команд доступ к managed-ресурсам — базам данных, топикам, бакетам, чтобы у всех были раздельные квоты.
Решение — разделить каждую команду на свой тенант.
Создать тенант
Не создавайте тенант под каждый репозиторий.
Создать тенант могут все участники группы tenant-creator. Создатель получает роль «Project lead».
-
Откройте главную страницу Spirit.
-
Нажмите Create tenant.
-
Заполните поля:
- Tenant name.
- Description — максимум 255 символов.
- Tenant key — уникальный идентификатор. Используйте только латинские буквы, цифры и дефис. Его нельзя будет поменять.
-
Нажмите Create and link to tenant.
-
Нажмите в левом верхнем меню на стрелку → название вашего тенанта.
У вас будут разные права, в зависимости от роли. Больше всего возможностей у пользователя с ролью «Project lead».
Как добавить участников в тенант
Редактировать
Пользователь с ролью «Project lead» в тенанте — это его владелец, у которого максимальные права. То есть, редактировать тенант может только человек с этой ролью.
Если у вас есть роль «Project lead»
Вы можете редактировать только Tenant name и Description . Tenant key нельзя поменять, но вы можете создать новый тенант.
- Перейдите в ваш тенант.
- Нажмите Manage → About tenant в левом меню.
- Отредактируйте поля и нажмите Save.

Если у вас есть нет роли «Project lead»
Кейс актуален, когда владелец тенанта не на связи. Например, ушёл из компании или в отпуск.
Как решить проблему:
- если он в отпуске — дождитесь его или попросите его руководителя отдела создать запрос в поддержку Т-Банка;
- если он уволился — напишите его руководителю отдела, чтобы он создал запрос в поддержку Т-Банка на смену лида тенанта.