Доступно в редакциях: CE, BE, SE, SE+, EE
В модуле реализовано 15 алертов.
Модуль включен по умолчанию в наборах модулей: Default, Managed.
Модуль выключен по умолчанию в наборе модулей Minimal.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Описание конверсии отсутствует.
- Обновление из версии 2 в 3:
Описание конверсии отсутствует.
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig с именем upmeter (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/upmeter для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: upmeter
spec:
version: 3
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 3
- объектsettings
- объектsettings.auth
Обязательный параметр
Доступ к веб-интерфейсу.
- объектsettings.auth.status
Обязательный параметр
Настройки доступа к веб-интерфейсу.
- массив строкsettings.auth.status.allowedUserEmails
Массив адресов электронной почты, пользователям которых разрешен доступ к веб-интерфейсу.
Используется, если включен модуль
user-authnили задан параметрexternalAuthentication. - массив строк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.allowedUserEmails
Массив адресов электронной почты, пользователям которых разрешен доступ к веб-интерфейсу.
Используется, если включен модуль
user-authnили задан параметрexternalAuthentication. - массив строк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.ingressClass
Класс Ingress-контроллера, который используется для Upmeter.
Опциональный параметр, по умолчанию используется глобальное значение
modules.ingressClassШаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ - объект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.storageClass
StorageClass для использования при проверке работоспособности дисков.
Если значение не указано, то будет использоваться StorageClass, согласно настройке глобального параметра storageClass.
Настройка глобального параметра
storageClassучитывается только при включении модуля. Изменение глобального параметраstorageClassпри включенном модуле не приведет к перезаказу диска.Если указать
false, будет принудительно использоваться emptyDir.Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.
Внимание. При переносе Upmeter с локальным хранилищем на другие узлы, поды зависнут в состоянии Pending. В этом случае будет необходимо сохранить базу данных Upmeter, удалить старые PVC и перезапустить под вручную. Под локальным хранилищем подразумевается StorageClass, связанный не с сетевым хранилищем, а с локальным томом на узле (например, StorageClass, создаваемый модулем local-path-provisioner).
По умолчанию:
falseПримеры:
storageClass: falsestorageClass: default
- булевыйsettings.smokeMiniDisabled
Выключение smokeMini. Также отключает группу “synthetic”.
По умолчанию:
false - булевыйsettings.statusPageAuthDisabled
Выключение авторизации для status-домена.
По умолчанию:
false - settings.storageClass
Имя StorageClass, который будет использоваться по умолчанию в кластере.
Если значение не указано, используется StorageClass существующей PVC. Если PVC нет, будет использоваться StorageClass, согласно настройке глобального параметра storageClass.
Настройка глобального параметра
storageClassучитывается только при включении модуля. Изменение глобального параметраstorageClassпри включенном модуле не приведет к перезаказу диска.Если указать
false, будет принудительно использоватьсяemptyDir.Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.
Внимание. При переносе Upmeter с локальным хранилищем на другие узлы, поды зависнут в состоянии Pending. В этом случае будет необходимо сохранить базу данных Upmeter, удалить старые PVC и перезапустить под вручную. Под локальным хранилищем подразумевается StorageClass, связанный не с сетевым хранилищем, а с локальным томом на узле (например, StorageClass, создаваемый модулем local-path-provisioner).
Примеры:
storageClass: falsestorageClass: default - массив объектов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 со сгенерированным паролем.
Посмотреть сгенерированный пароль можно командой:
d8 k -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module values upmeter -o json | jq '.upmeter.internal.auth.webui.password'
Чтобы сгенерировать новый пароль, нужно удалить Secret:
d8 k -n d8-upmeter delete secret/basic-auth-webui
Посмотреть сгенерированный пароль для страницы статуса можно командой:
d8 k -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module values upmeter -o json | jq '.upmeter.internal.auth.status.password'
Чтобы сгенерировать новый пароль для страницы статуса, нужно удалить секрет:
d8 k -n d8-upmeter delete secret/basic-auth-status
Внимание! Параметры
auth.status.passwordиauth.webui.passwordбольше не поддерживаются.