У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: Default
, Managed
.
Модуль выключен по умолчанию в наборе модулей Minimal
.
Чтобы настроить модуль используйте custom resource ModuleConfig
с именем documentation
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/documentation
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: documentation
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- authобъект
Опции, связанные с аутентификацией и авторизацией доступа к web-интерфейсу документации.
- auth.allowedUserGroupsмассив строк
Массив групп, пользователям которых разрешен доступ к просмотру документации.
Используется, если включен модуль
user-authn
или задан параметрexternalAuthentication
.Внимание! При использовании совместно с модулем
user-authn
необходимо также добавить разрешенные группы в соответствующее поле в настройкахDexProvider
.По умолчанию:
[]
Примеры:
allowedUserGroups: - admin - users
allowedUserGroups: []
- auth.externalAuthenticationобъект
Параметры для подключения внешней аутентификации (используется механизм Nginx Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- auth.externalAuthentication.authSignInURLстрока
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP отличный от 200).
По умолчанию:
""
Пример:
authSignInURL: https://$host/dex-authenticator/sign_in
- auth.externalAuthentication.authURLстрока
URL сервиса аутентификации.
Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
По умолчанию:
""
Пример:
authURL: https://documentation-dex-authenticator.d8-system.svc.cluster.local/dex-authenticator/auth
- auth.externalAuthentication.authSignInURLстрока
- auth.allowedUserGroupsмассив строк
- httpsобъект
Тип используемого сертификата.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https
.Примеры:
https: mode: Disabled
https: mode: OnlyInURI
https: mode: CustomCertificate customCertificate: secretName: foobar
https: mode: CertManager certManager: clusterIssuerName: letsencrypt
- https.certManagerобъект
Настройки для certmanager.
- https.certManager.clusterIssuerNameстрока
Тип ClusterIssuer’а, используемого для заказа SSL-сертификата (в данный момент доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но возможно определить свои).По умолчанию:
"letsencrypt"
Пример:
clusterIssuerName: letsencrypt
- https.certManager.clusterIssuerNameстрока
- https.customCertificateобъект
Настройки для использования пользовательского сертификата.
- https.customCertificate.secretNameстрока
Имя Secret’а в пространстве имён
d8-system
, который будет использоваться для web-интерфейса документации.Secret должен быть в формате kubernetes.io/tls.
- https.customCertificate.secretNameстрока
- https.modeстрока
Режим работы HTTPS:
CertManager
— доступ по HTTPS с заказом сертификата согласно ClusterIssuer’у, заданному в параметреcertManager.clusterIssuerName
.CustomCertificate
— доступ по HTTPS с использованием сертификата из пространства имёнd8-system
.Disabled
— доступ только по HTTP.OnlyInURI
— доступ по HTTP, подразумевая, что перед web-интерфейсом стоит внешний HTTPS-балансер, который терминирует HTTPS и все ссылки вuser-authn
будут генерироваться с HTTPS-схемой.
По умолчанию:
"CertManager"
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- https.certManagerобъект
- ingressClassстрока
Класс Ingress-контроллера web-интерфейса документации.
Опциональный параметр, по умолчанию используется глобальное значение
modules.ingressClass
.Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
- nodeSelectorобъект
Структура, аналогичная
spec.nodeSelector
Kubernetes pod.Если ничего не указано или указано
false
—nodeSelector
будет определяться автоматически.Пример:
nodeSelector: disktype: ssd
- tolerationsмассив объектов
Структура, аналогичная
spec.tolerations
в Kubernetes Pod.Если ничего не указано или указано
false
—tolerations
будет определяться автоматически.Пример:
tolerations: - key: key1 operator: Equal value: value1 effect: NoSchedule
- tolerations.effectстрока
- tolerations.keyстрока
- tolerations.operatorстрока
- tolerations.tolerationSecondsцелочисленный
- tolerations.valueстрока
Аутентификация
По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication
(см. ниже).
Если эти варианты отключены, то модуль включит basic auth со сгенерированным паролем.
Посмотреть сгенерированный пароль можно командой:
kubectl -n d8-system exec deploy/deckhouse -- deckhouse-controller module values documentation -o json | jq '.documentation.internal.auth.password'
Чтобы сгенерировать новый пароль, нужно удалить секрет:
kubectl -n d8-system delete secret/documentation-basic-auth
Внимание! Параметр
auth.password
больше не поддерживается.