Доступно в редакциях: CE, BE, EE
Аутентификация
По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication.
Если ни один из этих способов не включен, модуль dashboard будет отключен.
Параметры auth.password и accessLevel больше не поддерживаются.
Настройки
У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: Default, Managed.
Модуль выключен по умолчанию в наборе модулей Minimal.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Описание конверсии отсутствует.
- Обновление из версии 2 в 3:
Описание конверсии отсутствует.
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig с именем dashboard (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/dashboard для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: dashboard
spec:
version: 3
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 3
- объектsettings
- объектsettings.auth
Опции, связанные с аутентификацией или авторизацией в приложении.
- массив строкsettings.auth.allowedUserEmails
Массив адресов электронной почты, пользователям которых разрешен доступ к веб-интерфейсу.
Используется, если включен модуль
user-authnили задан параметрexternalAuthentication. - массив строкsettings.auth.allowedUserGroups
Массив групп пользователей, которые могут иметь доступ к дашборду.
Этот параметр используется, если модуль
user-authnвключён или настроен параметрexternalAuthentication.Внимание. Если модуль используется вместе с user-authn, не забудьте добавить эти группы в соответствующее поле конфигурации DexProvider.
- объектsettings.auth.externalAuthentication
Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
Внимание. Из соображений безопасности этот режим работает только при условии, что параметр
https.mode(глобальный или в модуле) не установлен в значениеDisabled.- строкаsettings.auth.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от
HTTP 200). - строкаsettings.auth.externalAuthentication.authURL
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа
HTTP 200. - булевыйsettings.auth.externalAuthentication.useBearerTokens
Токены авторизации. Дашборд должен взаимодействовать с Kubernetes API от имени пользователя. Для этого сервис аутентификации обязан возвращать HTTP-заголовок
Authorizationв своих ответах, содержащий bearer-token. Этот токен будет использоваться дашбордом для выполнения запросов к API-серверу Kubernetes.По умолчанию:
false
- массив строкsettings.auth.whitelistSourceRanges
Список адресов в формате CIDR, которым разрешено проходить аутентификацию для доступа в дашборд.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- булевыйsettings.highAvailability
Ручное управление режимом отказоустойчивости.
По умолчанию режим отказоустойчивости определяется автоматически.
Пример:
highAvailability: true - объектsettings.https
Тип сертификата, используемого для дашборда.
Этот параметр переопределяет глобальные настройки
global.modules.https.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobarhttps: mode: CertManager certManager: clusterIssuerName: letsencrypt- объектsettings.https.certManager
- строкаsettings.https.certManager.clusterIssuerName
Тип используемого ClusterIssuer. Доступны
letsencrypt,letsencrypt-staging,selfsigned, но вы можете определить свои значения.По умолчанию:
letsencrypt
- объектsettings.https.customCertificate
- строкаsettings.https.customCertificate.secretName
Имя секрета (Secret) в пространстве имен
d8-system, которое будет использоваться дашборд. Cекрет должен быть в формате tls).По умолчанию:
false
- строкаsettings.https.mode
Режим работы HTTPS:
CertManager— дашборд работает по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметреcertManager.clusterIssuerName;CustomCertificate— дашборд работает по HTTPS, используя сертификат из пространства именd8-system;Disabled— в данном режиме дашборд не будет работать;OnlyInURI— это режим, при котором дашборд работает через HTTP (с учетом того, что перед ним настроен внешний HTTPS-балансировщик, который завершает HTTPS-соединение). В этом случае все ссылки в user-authn будут генерироваться с использованием схемы HTTPS. Балансировщик должен обеспечивать автоматическое перенаправление с HTTP на HTTPS.
Допустимые значения:
Disabled,CertManager,CustomCertificate,OnlyInURI
- строкаsettings.ingressClass
Класс Ingress-контроллера, который используется для дашборда.
Опциональный параметр, по умолчанию используется глобальное значение
modules.ingressClass.Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ - объектsettings.nodeSelector
Аналогично параметру Kubernetes
spec.nodeSelectorу подов.Если значение не указано или указано
false, то Deckhouse попытается вычислить значениеnodeSelectorавтоматически. - массив объектовsettings.tolerations
Аналогично параметру Kubernetes
spec.tolerationsу подов.Если ничего не указано или указано
false, то Deckhouse попытается вычислить значениеtolerationsавтоматически.- строкаsettings.tolerations.effect
- строкаsettings.tolerations.key
- строкаsettings.tolerations.operator
- целочисленныйsettings.tolerations.tolerationSeconds
- строкаsettings.tolerations.value