В модуле реализовано 14 алертов.
Модуль включен по умолчанию в наборах модулей: 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
- settings
- settings.auth
Доступ к веб-интерфейсу.
- settings.auth.status
Обязательный параметр
Настройки доступа к веб-интерфейсу.
- settings.auth.status.allowedUserGroups
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authn
или параметрexternalAuthentication
. - Внимание! При использовании совместно с модулем
user-authn
необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
- settings.auth.status.externalAuthentication
Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля NGINX auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- settings.auth.status.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
- settings.auth.status.externalAuthentication.authURL
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- settings.auth.status.whitelistSourceRanges
Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- settings.auth.webui
Обязательный параметр
Настройки доступа к веб-интерфейсу.
- settings.auth.webui.allowedUserGroups
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authn
или параметрexternalAuthentication
. - Внимание! При использовании совместно с модулем
user-authn
необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
- settings.auth.webui.externalAuthentication
Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля NGINX auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- settings.auth.webui.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
- settings.auth.webui.externalAuthentication.authURL
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- settings.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. - settings.auth.webui.whitelistSourceRanges
Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- settings.disabledProbes
Массив строк из названий групп или определенных проб из группы. Названия можно подсмотреть в веб-интерфейсе.
Пример:
disabledProbes: - "synthetic/api" # Отключить отдельную пробу. - "synthetic/" # Отключить группу проб. - control-plane # Или без /.
По умолчанию:
[]
- settings.https
Тип сертификата, используемого для веб-приложений webui и status.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https
.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobar
https: mode: CertManager certManager: clusterIssuerName: letsencrypt
- settings.https.certManager
- settings.https.certManager.clusterIssuerName
ClusterIssuer, используемый для webui/status.
Доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но вы можете определить свои.По умолчанию:
"letsencrypt"
- settings.https.customCertificate
- settings.https.customCertificate.secretName
Имя Secret’а в пространстве имен
d8-system
, который будет использоваться для webui/status.Secret должен быть в формате TLS.
По умолчанию:
"false"
- settings.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-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- settings.nodeSelector
Структура, аналогичная
spec.nodeSelector
пода Kubernetes.Если значение не указано или указано
false
, будет использоваться автоматика.Пример:
nodeSelector: disktype: ssd
- settings.smokeMini
Configuration of authentication for smoke-mini.
- settings.smokeMini.auth
Обязательный параметр
Настройки доступа к веб-интерфейсу.
- settings.smokeMini.auth.allowedUserGroups
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authn
или параметрexternalAuthentication
. - Внимание! При использовании совместно с модулем
user-authn
необходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
- settings.smokeMini.auth.externalAuthentication
Параметры для подключения внешней аутентификации. Используется механизм NGINX Ingress
external-auth
, работающей на основе модуля NGINXauth_request
.- settings.smokeMini.auth.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
- settings.smokeMini.auth.externalAuthentication.authURL
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- settings.smokeMini.auth.password
Пароль для HTTP-авторизации для пользователя
admin
(генерируется автоматически, но можно менять)Используется, если не включен параметр
externalAuthentication
. - settings.smokeMini.auth.whitelistSourceRanges
Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- settings.smokeMini.https
Тип сертификата, используемого для smoke-mini.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https
.Примеры:
https: mode: CustomCertificate customCertificate: secretName: foobar
https: mode: CertManager certManager: clusterIssuerName: letsencrypt
- settings.smokeMini.https.certManager
- settings.smokeMini.https.certManager.clusterIssuerName
ClusterIssuer, используемый для smoke-mini.
Доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но вы можете определить свои.По умолчанию:
"letsencrypt"
- settings.smokeMini.https.customCertificate
- settings.smokeMini.https.customCertificate.secretName
Имя Secret’а в namespace
d8-system
, который будет использоваться для smoke-mini.Secret должен быть в формате TLS.
По умолчанию:
"false"
- settings.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-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- settings.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])?)*$
- settings.smokeMini.storageClass
StorageClass для использования при проверке работоспособности дисков.
- Если не указано, используется StorageClass существующей PVC, а если PVC пока нет, используется или глобальный StorageClass, или
global.discovery.defaultStorageClass
, а если и их нет, данные сохраняются в emptyDir. global.discovery.defaultStorageClass
применяется только при включении модуля, смена StorageClass по умолчанию в кластере не приведет к перезаказу диска.- Если указать
false
, будет форсироваться использование emptyDir’а.
Внимание. При переносе Upmeter с локальным хранилищем на другие узлы, поды зависнут в состоянии Pending. В этом случае будет необходимо сохранить базу данных Upmeter, удалить старые PVC и перезапустить под вручную. Под локальным хранилищем подразумевается StorageClass, связанный не с сетевым хранилищем, а с локальным томом на узле (например, StorageClass, создаваемый модулем local-path-provisioner).
По умолчанию:
false
Примеры:
storageClass: false
storageClass: default
- Если не указано, используется StorageClass существующей PVC, а если PVC пока нет, используется или глобальный StorageClass, или
- settings.smokeMiniDisabled
Выключение smokeMini. Также отключает группу “synthetic”.
По умолчанию:
false
- settings.statusPageAuthDisabled
Выключение авторизации для status-домена.
По умолчанию:
false
- settings.storageClass
Имя storageClass’а, который будет использоваться.
- Если не указано, используется StorageClass существующей PVC, а если PVC пока нет, используется или глобальный StorageClass, или
global.discovery.defaultStorageClass
, а если и их нет, данные сохраняются в emptyDir. global.discovery.defaultStorageClass
применяется только при включении модуля, смена StorageClass по умолчанию в кластере не приведет к перезаказу диска.- ОСТОРОЖНО! При указании этой опции в значение, отличное от текущего (из существующей PVC), диск будет перезаказан, а все данные удалены.
- Если указать
false
, будет форсироваться использование emptyDir’а.
Примеры:
storageClass: false
storageClass: default
- Если не указано, используется StorageClass существующей PVC, а если PVC пока нет, используется или глобальный StorageClass, или
- settings.tolerations
Структура, аналогичная
spec.tolerations
пода Kubernetes.Если значение не указано или указано
false
, будет использоваться автоматика.Пример:
tolerations: - key: key1 operator: Equal value: value1 effect: NoSchedule
- 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 upmeter -o json | jq '.upmeter.internal.auth.webui.password'
Чтобы сгенерировать новый пароль, нужно удалить Secret:
kubectl -n d8-upmeter delete secret/basic-auth-webui
Посмотреть сгенерированный пароль для страницы статуса можно командой:
kubectl -n d8-system exec svc/deckhouse-leader -c 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
больше не поддерживаются.