Аутентификация
По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication
.
Если ни один из этих способов не включен, модуль dashboard
будет отключен.
Параметры auth.password
и accessLevel
больше не поддерживаются.
Настройки
У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: Default
, Managed
.
Модуль выключен по умолчанию в наборе модулей Minimal
.
Чтобы настроить модуль, используйте ресурс 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.allowedUserGroups
Массив групп пользователей, которые могут иметь доступ к dashboard.
Этот параметр используется, если модуль
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
Токены авторизации. Dashboard должен взаимодействовать с Kubernetes API от имени пользователя. Для этого сервис аутентификации обязан возвращать HTTP-заголовок
Authorization
в своих ответах, содержащий bearer-token. Этот токен будет использоваться dashboard для выполнения запросов к API-серверу Kubernetes.По умолчанию:
false
- settings.auth.whitelistSourceRanges
Список адресов в формате CIDR, которым разрешено проходить аутентификацию для доступа в dashboard.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- settings.highAvailability
Ручное управление режимом отказоустойчивости.
По умолчанию режим отказоустойчивости определяется автоматически. Подробнее.
Пример:
highAvailability: true
- settings.https
Тип сертификата, используемого для dashboard.
Этот параметр переопределяет глобальные настройки
global.modules.https
.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobar
https: 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
, который будет использоваться для dashboard (данный секрет должен быть в формате tls).По умолчанию:
"false"
- settings.https.mode
Режим работы HTTPS:
CertManager
— dashboard будет работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметреcertManager.clusterIssuerName
;CustomCertificate
— dashboard будет работать по HTTPS, используя сертификат из пространства именd8-system
;Disabled
— в данном режиме dashboard не будет работать;OnlyInURI
— это режим, при котором dashboard работает через HTTP (с учетом того, что перед ним настроен внешний HTTPS-балансировщик, который завершает HTTPS-соединение). В этом случае все ссылки в user-authn будут генерироваться с использованием схемы HTTPS. Балансировщик должен обеспечивать автоматическое перенаправление с HTTP на HTTPS.
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- settings.ingressClass
Класс Ingress-контроллера, который используется для dashboard.
Опциональный параметр, по умолчанию используется глобальное значение
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
, будет использоваться автоматика. - settings.tolerations
Аналогично параметру Kubernetes
spec.tolerations
у подов.Если значение не указано или указано
false
, будет использоваться автоматика.- settings.tolerations.effect
- settings.tolerations.key
- settings.tolerations.operator
- settings.tolerations.tolerationSeconds
- settings.tolerations.value