В модуле реализовано 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
adminuser. It is generated automatically, but you can change it.This parameter is used if the
externalAuthenticationis 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: foobarhttps: 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: foobarhttps: 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: falsestorageClass: 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: falsestorageClass: 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больше не поддерживаются.