У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: 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
- accessLevel
Уровень доступа в dashboard, если отключен модуль
user-authn
и не включена внешняя аутентификация (externalAuthentication
). Возможные значения описаны в user-authz.По умолчанию используется уровень
User
.В случае использования модуля
user-authn
или другой внешней аутентификации (externalAuthentication
) права доступа необходимо настраивать с помощью модуляuser-authz
.По умолчанию:
"User"
Допустимые значения:
User
,PrivilegedUser
,Editor
,Admin
,ClusterEditor
,ClusterAdmin
,SuperAdmin
- auth
Опции, связанные с аутентификацией или авторизацией в приложении.
- auth.allowScale
Активация возможности скейлить Deployment и StatefulSet из веб-интерфейса.
Не используется, если включен параметр
externalAuthentication
. - auth.externalAuthentication
Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- auth.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
- auth.externalAuthentication.authURL
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- auth.externalAuthentication.useBearerTokens
Токены авторизации. dashboard должен работать с Kubernetes API от имени пользователя (сервис аутентификации при этом должен обязательно возвращать в своих ответах HTTP-заголовок Authorization, в котором должен быть bearer-token — именно под этим токеном dashboard будет производить запросы к API-серверу Kubernetes).
- Значение по умолчанию:
false
.
Важно! Из соображений безопасности этот режим работает только если
https.mode
(глобальный или в модуле) не установлен в значениеDisabled
. - Значение по умолчанию:
- auth.whitelistSourceRanges
Массив адресов в формате CIDR, которым разрешено проходить аутентификацию для доступа в dashboard.
- highAvailability
Ручное управление режимом отказоустойчивости.
По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.
Пример:
highAvailability: true
- https
Тип сертификата, используемого для dashboard.
Этот параметр переопределяет глобальные настройки
global.modules.https
.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobar
https: mode: CertManager certManager: clusterIssuerName: letsencrypt
- https.certManager
- https.certManager.clusterIssuerName
Тип используемого ClusterIssuer. В данный момент доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но вы можете определить свои.По умолчанию:
"letsencrypt"
- https.customCertificate
- https.customCertificate.secretName
Имя Secret’а в пространстве имен
d8-system
, который будет использоваться для dashboard (данный Secret должен быть в формате kubernetes.io/tls).По умолчанию:
"false"
- 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
- ingressClass
Класс Ingress-контроллера, который используется для dashboard.
Опциональный параметр, по умолчанию используется глобальное значение
modules.ingressClass
.Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
- nodeSelector
Аналогично параметру Kubernetes
spec.nodeSelector
у подов.Если ничего не указано или указано
false
, будет использоваться автоматика. - tolerations
Аналогично параметру Kubernetes
spec.tolerations
у подов.Если ничего не указано или указано
false
, будет использоваться автоматика.- tolerations.effect
- tolerations.key
- tolerations.operator
- tolerations.tolerationSeconds
- 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
больше не поддерживается.