Доступно с ограничениями в редакцияхCE

Доступно без ограничений в редакциях:  BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)

Стадия жизненного цикла модуля: General Availability

Внимание! Мы категорически не рекомендуем создавать поды и ReplicaSet’ы — эти объекты являются второстепенными и должны создаваться из других контроллеров. Доступ к созданию и изменению подов и ReplicaSet’ов полностью отсутствует.

Внимание! Режим multi-tenancy (авторизация по пространству имён) в данный момент реализован по временной схеме и не гарантирует безопасность! Если вебхук, который реализовывает систему авторизации, по какой-то причине будет недоступен, авторизация по пространству имён (опции allowAccessToSystemNamespaces, namespaceSelector и limitNamespaces в custom resource) перестанет работать и пользователи получат доступы во все пространства имён. После восстановления доступности вебхука всё вернётся на свои места.

Вся настройка прав доступа происходит с помощью custom resources.

Модуль включен по умолчанию в наборах модулей: Default, Managed. Модуль выключен по умолчанию в наборе модулей Minimal.

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль user-authz, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля

  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля user-authz:

    d8 system module enable user-authz
    
  • С помощью ModuleConfig user-authz.

    Установите spec.enabled в true или false в ModuleConfig user-authz (создайте его, при необходимости).

    Пример манифеста для включения модуля user-authz:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: user-authz
    spec:
      enabled: true
    

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль user-authz, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig user-authz на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль user-authz), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig user-authz (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc user-authz
    

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig user-authz, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig user-authz:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: user-authz
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.
    

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.controlPlaneConfigurator
      объект

      Настройки параметров для модуля автоматической настройки kube-apiserver control-plane-manager.

      • settings.controlPlaneConfigurator.enabled
        булевый

        Передавать ли в control-plane-manager параметры для настройки authz-webhook (см. параметры control-plane-manager’а).

        При выключении этого параметра модуль control-plane-manager будет считать, что по умолчанию webhook-авторизация выключена, и, соответственно, если не будет дополнительных настроек, control-plane-manager будет стремиться вычеркнуть упоминания webhook-плагина из манифеста. Даже если вы настроите манифест вручную.

        По умолчанию: true

        Примеры:

        enabled: true
        
        enabled: false
        
    • settings.enableMultiTenancy
      булевый

      Доступно в редакциях: BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)

      Включить авторизацию по namespace (режим multi-tenancy).

      Все настройки kube-apiserver, необходимые для работы авторизации по namespace, выполняются автоматически модулем control-plane-manager (подробнее).

      По умолчанию: false

      Примеры:

      enableMultiTenancy: true
      
      enableMultiTenancy: false