Доступно только в Enterprise Edition.
Находится в процессе активного развития. Функциональность может существенно измениться.

Модуль позволяет настраивать изолированные окружения в кластере Kubernetes.

По подготовленному шаблону с помощью Custom Resource Project в кластере Kubernetes можно получить одинаковые, изолированные друг от друга окружения с настроенными доступами пользователей (подробнее в разделе Примеры).

Создание изолированных окружений с помощью модуля multitenancy-manager может быть удобно, например, в следующих случаях:

  • В рамках процесса CI/CD — для создания окружений разработчика при тестировании или демонстрации работы кода.
  • При развертывании приложений, с предоставлением разработчику ограниченного доступа в кластер.
  • При предоставлении услуг по аренде ресурсов кластера.

Возможности модуля

  • Управление доступом пользователей и групп на базе механизма RBAC Kubernetes (на основе модуля user-authz).
  • Управление уровнем изоляции конкретных окружений.
  • Создание шаблонов для нескольких окружений и кастомизация параметрами по OpenAPI-спецификации.
  • Полная совместимость с Helm в темплейтах ресурсов.

Принцип работы

При создании ресурса Project происходит следующее:

  • Создается Namespace с именем из ресурса Project.
  • Создается AuthorizationRule из приведенных данных в поле subjects ресурса ProjectType.
  • Выполняется рендеринг шаблонов (параметр resourcesTemplate ресурса ProjectType) с помощью Helm. Значения для рендеринга берутся из параметра template ресурса Project. При рендеринге выполняется валидация значений согласно OpenAPI-спецификации (параметр openAPI ресурса ProjectType).

Так как рендеринг шаблонов выполняется с помощью Helm, в шаблоне можно описать любые необходимые объекты Kubernetes, например NetworkPolicy, LimitRange, ResourceQuota и т.п.