У модуля нет обязательных настроек.
Пример конфигурации
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse-tools
spec:
enabled: true
version: 1
Модуль включен по умолчанию в наборах модулей: Default, Managed.
Модуль выключен по умолчанию в наборе модулей Minimal.
Чтобы настроить модуль, используйте custom resource ModuleConfig с именем deckhouse-tools (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/deckhouse-tools для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse-tools
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- объектsettings
- объектsettings.auth
Параметры для аутентификации и авторизации доступа к веб-интерфейсу модуля.
- массив строкsettings.auth.allowedUserGroups
Массив из групп, пользователи которых имеют доступ к веб-интерфейсу модуля.
Этот параметр используется, если включен модуль
user-authnили установлен параметрexternalAuthentication.Внимание! Эти группы необходимо добавить в соответствующее поле в конфигурации
DexProvider, если этот модуль используется вместе с модулемuser-authn.По умолчанию:
[]Примеры:
allowedUserGroups: - admin - usersallowedUserGroups: [] - объектsettings.auth.externalAuthentication
Параметры для включения внешней аутентификации на основе NGINX Ingress external-auth механизма, использующего Nginx auth_request module.
Внешняя аутентификация включена по умолчанию, если включен модуль user-authn.
- строкаsettings.auth.externalAuthentication.authSignInURL
URL-адрес для перенаправления пользователя на проверку аутентификации (если служба аутентификации вернула код ответа HTTP, отличный от 200).
По умолчанию:
""Пример:
authSignInURL: https://$host/dex-authenticator/sign_in - строкаsettings.auth.externalAuthentication.authURL
URL-адрес сервиса аутентификации.
Если пользователь прошел аутентификацию, сервис должен вернуть код ответа HTTP 200.
По умолчанию:
""Пример:
authURL: https://deckhouse-tools-dex-authenticator.d8-system.svc.cluster.local/dex-authenticator/auth
- объектsettings.https
Тип используемого сертификата.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https.Примеры:
https: mode: Disabledhttps: mode: OnlyInURIhttps: mode: CustomCertificate customCertificate: secretName: foobarhttps: mode: CertManager certManager: clusterIssuerName: letsencrypt- объектsettings.https.certManager
Настройки для cert-manager.
- строкаsettings.https.certManager.clusterIssuerName
Тип ClusterIssuer’а, используемого для заказа SSL-сертификата (доступны
letsencrypt,letsencrypt-stagingиselfsigned, но возможно определить свои).По умолчанию:
"letsencrypt"Пример:
clusterIssuerName: letsencrypt
- объектsettings.https.customCertificate
Настройки для использования пользовательского сертификата.
- строкаsettings.https.customCertificate.secretName
Имя Secret’а в пространстве имен
d8-system, который будет использоваться для веб-интерфейса модуля.Secret должен быть в формате kubernetes.io/tls.
- строкаsettings.https.mode
Режим работы HTTPS:
CertManager— доступ по HTTPS с заказом сертификата согласно ClusterIssuer’у, заданному в параметреcertManager.clusterIssuerName.CustomCertificate— доступ по HTTPS с использованием сертификата из пространства именd8-system.Disabled— доступ только по HTTP.OnlyInURI— доступ по HTTP, подразумевая, что перед веб-интерфейсом стоит внешний HTTPS-балансер, который терминирует HTTPS, и все ссылки вuser-authnбудут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.
По умолчанию:
"CertManager"Допустимые значения:
Disabled,CertManager,CustomCertificate,OnlyInURI
- строкаsettings.ingressClass
Класс Ingress-контроллера веб-интерфейса модуля.
Опциональный параметр, по умолчанию используется глобальное значение
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будет определяться автоматически.Пример:
nodeSelector: disktype: ssd - массив объектовsettings.tolerations
Структура, аналогичная
spec.tolerationsпода Kubernetes.Если значение не указано или указано
false,tolerationsбудет определяться автоматически.Пример:
tolerations: - key: key1 operator: Equal value: value1 effect: NoSchedule- строкаsettings.tolerations.effect
- строкаsettings.tolerations.key
- строкаsettings.tolerations.operator
- целочисленныйsettings.tolerations.tolerationSeconds
- строкаsettings.tolerations.value