У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: 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: foobarhttps: 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больше не поддерживается.