Модуль включен по умолчанию в наборах модулей: Default
, Managed
.
Модуль выключен по умолчанию в наборе модулей Minimal
.
Чтобы настроить модуль используйте custom resource ModuleConfig
с именем upmeter
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/upmeter
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: upmeter
spec:
version: 2
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
- authобъект
Обязательный параметр
Доступ к web-интерфейсу
- auth.statusобъект
Обязательный параметр
Настройки доступа к web-интерфейсу.
- auth.status.allowedUserGroupsмассив строк
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authn
или параметрexternalAuthentication
. - Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
- auth.status.externalAuthenticationобъект
Параметры для подключения внешней аутентификации (используется механизм Nginx Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- auth.status.externalAuthentication.authSignInURLстрока
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP отличный от 200).
- auth.status.externalAuthentication.authURLстрока
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- auth.status.externalAuthentication.authSignInURLстрока
- auth.status.whitelistSourceRangesмассив строк
Список CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- auth.status.allowedUserGroupsмассив строк
- auth.webuiобъект
Обязательный параметр
Настройки доступа к web-интерфейсу.
- auth.webui.allowedUserGroupsмассив строк
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authn
или параметрexternalAuthentication
. - Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
- auth.webui.externalAuthenticationобъект
Параметры для подключения внешней аутентификации (используется механизм Nginx Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- auth.webui.externalAuthentication.authSignInURLстрока
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP отличный от 200).
- auth.webui.externalAuthentication.authURLстрока
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- auth.webui.externalAuthentication.authSignInURLстрока
- auth.webui.passwordстрока
Password for http authorization of the
admin
user. It is generated automatically, but you can change it.This parameter is used if the
externalAuthentication
is not enabled. - auth.webui.whitelistSourceRangesмассив строк
Список CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- auth.webui.allowedUserGroupsмассив строк
- auth.statusобъект
- disabledProbesмассив строк
Массив строк из названий групп или определенных проб из группы. Названия можно подсмотреть в web-интерфейсе.
Пример:
disabledProbes: - "synthetic/api" # отключить отдельную пробу - "synthetic/" # отключить группу проб - control-plane # или без /
По умолчанию:
[]
- httpsобъект
Тип сертификата используемого для веб-приложений webui и status.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https
.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobar
https: mode: CertManager certManager: clusterIssuerName: letsencrypt
- https.certManagerобъект
- https.certManager.clusterIssuerNameстрока
ClusterIssuer, используемый для webui/status.
Доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но вы можете определить свои.По умолчанию:
"letsencrypt"
- https.certManager.clusterIssuerNameстрока
- https.customCertificateобъект
- https.customCertificate.secretNameстрока
Имя secret’а в namespace
d8-system
, который будет использоваться для webui/status.Секрет должен быть в формате kubernetes.io/tls.
По умолчанию:
"false"
- https.customCertificate.secretNameстрока
- https.modeстрока
Режим работы HTTPS:
Disabled
— webui/status будут работать только по HTTP.CertManager
— webui/status будут работать по https и заказывать сертификат с помощью clusterissuer заданном в параметреcertManager.clusterIssuerName
.CustomCertificate
— webui/status будут работать по https используя сертификат из namespaced8-system
.OnlyInURI
— webui/status будет работать по HTTP (подразумевая, что перед ними стоит внешний балансер, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- https.certManagerобъект
- nodeSelectorобъект
Структура, аналогичная
spec.nodeSelector
Kubernetes Pod.Если ничего не указано или указано
false
— будет использоваться автоматика.Пример:
nodeSelector: disktype: ssd
- smokeMiniобъект
Configuration of authentication for smoke-mini.
- smokeMini.authобъект
Обязательный параметр
Настройки доступа к web-интерфейсу.
- smokeMini.auth.allowedUserGroupsмассив строк
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authn
или параметрexternalAuthentication
. - Внимание! При использовании совместно с модулем user-authn необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
- smokeMini.auth.externalAuthenticationобъект
Параметры для подключения внешней аутентификации. Используется механизм Nginx Ingress external-auth, работающей на основе модуля Nginx auth_request.
- smokeMini.auth.externalAuthentication.authSignInURLстрока
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP отличный от 200).
- smokeMini.auth.externalAuthentication.authURLстрока
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- smokeMini.auth.externalAuthentication.authSignInURLстрока
- smokeMini.auth.passwordстрока
Пароль для http-авторизации для пользователя
admin
(генерируется автоматически, но можно менять)Используется, если не включен параметр
externalAuthentication
. - smokeMini.auth.whitelistSourceRangesмассив строк
Список CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- smokeMini.auth.allowedUserGroupsмассив строк
- smokeMini.httpsобъект
Тип сертификата используемого для smoke-mini.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https
.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobar
https: mode: CertManager certManager: clusterIssuerName: letsencrypt
- smokeMini.https.certManagerобъект
- smokeMini.https.certManager.clusterIssuerNameстрока
ClusterIssuer, используемый для smoke-mini.
Доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но вы можете определить свои.По умолчанию:
"letsencrypt"
- smokeMini.https.certManager.clusterIssuerNameстрока
- smokeMini.https.customCertificateобъект
- smokeMini.https.customCertificate.secretNameстрока
Имя secret’а в namespace
d8-system
, который будет использоваться для smoke-mini.Секрет должен быть в формате kubernetes.io/tls.
По умолчанию:
"false"
- smokeMini.https.customCertificate.secretNameстрока
- smokeMini.https.modeстрока
Режим работы HTTPS:
Disabled
— smoke-mini будут работать только по HTTP.CertManager
— smoke-mini будут работать по https и заказывать сертификат с помощью clusterissuer заданном в параметреcertManager.clusterIssuerName
.CustomCertificate
— smoke-mini будут работать по https используя сертификат из namespaced8-system
.OnlyInURI
— smoke-mini будет работать по HTTP (подразумевая, что перед ними стоит внешний балансер, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- smokeMini.https.certManagerобъект
- smokeMini.ingressClassстрока
Класс Ingress-контроллера, который используется для smoke-mini.
Опциональный параметр, по умолчанию используется глобальное значение
modules.ingressClass
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
- smokeMini.storageClass
storageClass для использования при проверке работоспособности дисков.
- Если не указано — используется StorageClass существующей PVC, а если PVC пока нет — используется или глобальный StorageClass, или
global.discovery.defaultStorageClass
, а если и их нет — данные сохраняются в emptyDir. - Если указать
false
— будет форсироваться использование emptyDir’а.
По умолчанию:
false
Примеры:
storageClass: false
storageClass: default
- Если не указано — используется StorageClass существующей PVC, а если PVC пока нет — используется или глобальный StorageClass, или
- smokeMini.authобъект
- smokeMiniDisabledбулевый
Выключение smokeMini. Также отключает группу “synthetic”.
По умолчанию:
false
- statusPageAuthDisabledбулевый
Выключение авторизации для status-домена.
По умолчанию:
false
- storageClass
Имя storageClass’а, который использовать.
- Если не указано — используется StorageClass существующей PVC, а если PVC пока нет — используется или глобальный StorageClass, или
global.discovery.defaultStorageClass
, а если и их нет — данные сохраняются в emptyDir. - ОСТОРОЖНО! При указании этой опции в значение, отличное от текущего (из существующей PVC), диск будет перезаказан, а все данные удалены.
- Если указать
false
— будет форсироваться использование emptyDir’а.
Примеры:
storageClass: false
storageClass: default
- Если не указано — используется StorageClass существующей PVC, а если PVC пока нет — используется или глобальный StorageClass, или
- tolerationsмассив объектов
Структура, аналогичная
spec.tolerations
в Kubernetes Pod.Если ничего не указано или указано
false
— будет использоваться автоматика.Пример:
tolerations: - key: key1 operator: Equal value: value1 effect: NoSchedule
- tolerations.effectстрока
- tolerations.keyстрока
- tolerations.operatorстрока
- tolerations.tolerationSecondsцелочисленный
- tolerations.valueстрока
Аутентификация
По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication
(см. ниже).
Если эти варианты отключены, то модуль включит basic auth со сгенерированным паролем.
Посмотреть сгенерированный пароль можно командой:
kubectl -n d8-system exec deploy/deckhouse -- deckhouse-controller module values upmeter -o json | jq '.upmeter.internal.auth.webui.password'
Чтобы сгенерировать новый пароль, нужно удалить секрет:
kubectl -n d8-upmeter delete secret/basic-auth-webui
Посмотреть сгенерированный пароль для страницы статуса можно командой:
kubectl -n d8-system exec deploy/deckhouse -- deckhouse-controller module values upmeter -o json | jq '.upmeter.internal.auth.status.password'
Чтобы сгенерировать новый пароль для страницы статуса, нужно удалить секрет:
kubectl -n d8-upmeter delete secret/basic-auth-status
Внимание! Параметры
auth.status.password
иauth.webui.password
больше не поддерживаются.