У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: Default
, Managed
.
Модуль выключен по умолчанию в наборе модулей Minimal
.
Чтобы настроить модуль, используйте custom resource ModuleConfig
с именем dashboard
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/dashboard
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: dashboard
spec:
version: 2
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
- settings
- settings.accessLevel
Уровень доступа в dashboard, если отключен модуль
user-authn
и не включена внешняя аутентификация (externalAuthentication
). Возможные значения описаны в user-authz.По умолчанию используется уровень
User
.В случае использования модуля
user-authn
или другой внешней аутентификации (externalAuthentication
) права доступа необходимо настраивать с помощью модуляuser-authz
.По умолчанию:
"User"
Допустимые значения:
User
,PrivilegedUser
,Editor
,Admin
,ClusterEditor
,ClusterAdmin
,SuperAdmin
- settings.auth
Опции, связанные с аутентификацией или авторизацией в приложении.
- settings.auth.allowScale
Активация возможности скейлить Deployment и StatefulSet из веб-интерфейса.
Не используется, если включен параметр
externalAuthentication
. - settings.auth.allowedUserGroups
An array of user groups that can access the dashboard.
This parameter is used if the
user-authn
module is enabled or theexternalAuthentication
parameter is set.Caution! Note that you must add those groups to the appropriate field in the DexProvider config if this module is used together with the user-authn one.
- settings.auth.externalAuthentication
Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- settings.auth.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
- settings.auth.externalAuthentication.authURL
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- settings.auth.externalAuthentication.useBearerTokens
Токены авторизации. dashboard должен работать с Kubernetes API от имени пользователя (сервис аутентификации при этом должен обязательно возвращать в своих ответах HTTP-заголовок Authorization, в котором должен быть bearer-token — именно под этим токеном dashboard будет производить запросы к API-серверу Kubernetes).
- Значение по умолчанию:
false
.
Важно! Из соображений безопасности этот режим работает только если
https.mode
(глобальный или в модуле) не установлен в значениеDisabled
. - Значение по умолчанию:
- 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 (данный Secret должен быть в формате kubernetes.io/tls).По умолчанию:
"false"
- settings.https.mode
Режим работы HTTPS:
CertManager
— dashboard будет работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметреcertManager.clusterIssuerName
;CustomCertificate
— dashboard будет работать по HTTPS, используя сертификат из пространства именd8-system
;Disabled
— в данном режиме dashboard будет работать только по HTTP;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
Аутентификация
По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication
(см. ниже).
Если эти варианты отключены, модуль включит basic auth со сгенерированным паролем.
Посмотреть сгенерированный пароль можно командой:
kubectl -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module values dashboard -o json | jq '.dashboard.internal.auth.password'
Чтобы сгенерировать новый пароль, нужно удалить Secret:
kubectl -n d8-dashboard delete secret/basic-auth
Внимание! Параметр
auth.password
больше не поддерживается.