Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Аутентификация
По умолчанию используется модуль 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больше не поддерживаются.
Требования
К версии Deckhouse: 1.73.0 и выше.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:
-
Обновление из версии 1 в 2:
Удалите поля
.auth.status.passwordи.auth.webui.password. Если объекты.auth.statusили.auth.webuiстановятся пустыми, удалите их. Если объект.authстановится пустым, удалите его.
-
Обновление из версии 2 в 3:
Удалите поле
.smokeMini.ingressClass. Если объект.smokeMiniстановится пустым, удалите его.
Параметры
Версия схемы: 3
-
-
объект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
Параметры для подключения внешней аутентификации (используется механизм Ingress NGINX external-auth, работающий на основе модуля NGINX auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
-
строкаsettings.auth.status.externalAuthentication.authSignInURLURL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
-
строкаsettings.auth.status.externalAuthentication.authURLURL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа 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
Параметры для подключения внешней аутентификации (используется механизм Ingress NGINX external-auth, работающий на основе модуля NGINX auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
-
строкаsettings.auth.webui.externalAuthentication.authSignInURLURL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
-
строкаsettings.auth.webui.externalAuthentication.authURLURL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа 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.Примеры:
customCertificate: secretName: foobar mode: CustomCertificatecertManager: clusterIssuerName: letsencrypt mode: CertManager-
объект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, будет использоваться автоматика.Пример:
disktype: ssd -
объектsettings.registry
По умолчанию:
{}-
строкаsettings.registry.dockercfgBase64-encoded
.dockerconfigjsonfor pulling module images. If empty,global.modulesImages.registry.dockercfgis used.
-
-
объектsettings.smokeMiniConfiguration of authentication for smoke-mini.
По умолчанию:
{}-
объектsettings.smokeMini.auth
Обязательный параметр
Настройки доступа к веб-интерфейсу.По умолчанию:
{}-
массив строкsettings.smokeMini.auth.allowedUserGroups
Группы доступа к просмотру интерфейса приложения.
- Используется, если включен модуль
user-authnили параметрexternalAuthentication. - Внимание! При использовании совместно с модулем
user-authnнеобходимо также добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- Используется, если включен модуль
-
объектsettings.smokeMini.auth.externalAuthenticationПараметры для подключения внешней аутентификации. Используется механизм Ingress NGINX
external-auth, работающей на основе модуля NGINXauth_request.-
строкаsettings.smokeMini.auth.externalAuthentication.authSignInURLURL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
-
строкаsettings.smokeMini.auth.externalAuthentication.authURLURL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа 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.Примеры:
customCertificate: secretName: foobar mode: CustomCertificatecertManager: clusterIssuerName: letsencrypt mode: CertManager-
объект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 для хранения данных Upmeter (PVC).
Если значение не указано, используется 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: - effect: NoSchedule key: key1 operator: Equal value: value1-
строкаsettings.tolerations.effect
-
строкаsettings.tolerations.key
-
строкаsettings.tolerations.operator
-
целочисленныйsettings.tolerations.tolerationSeconds
-
строкаsettings.tolerations.value
-
-