Доступно в редакциях: CE, BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)
Модуль включен по умолчанию в наборах модулей: Default, Managed, Minimal.
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig с именем deckhouse (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/deckhouse для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- объектsettings
- булевыйsettings.allowExperimentalModules
Разрешает использование экспериментальных модулей (модули на стадии жизненного цикла
Experimental).Экспериментальные модули могут быть нестабильными и не поддерживаются в рамках SLA Deckhouse. Используйте их с осторожностью.
Пример:
allowExperimentalModules: false - строкаsettings.bundle
Набор модулей Deckhouse. Определяет включенные по умолчанию модули:
Default— рекомендованный набор модулей для работы кластера: мониторинга, контроля авторизации, организации работы сети и других потребностей.Managed— набор для managed-кластеров от облачных провайдеров (например, Google Kubernetes Engine).Minimal— минимально возможный набор, который включает единственный модуль (этот). Обратите внимание, что в набор модулейMinimalне включен ряд базовых модулей (например, модуль работы с CNI). Deckhouse с набором модулейMinimalбез включения базовых модулей сможет работать только в уже развернутом кластере.
По умолчанию:
DefaultДопустимые значения:
Default,Minimal,ManagedПример:
bundle: Default - булевыйsettings.highAvailability
Ручное управление режимом отказоустойчивости.
По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.
Пример:
highAvailability: true - объектsettings.license
Настройки редакции Deckhouse Kubernetes Platform.
- строкаsettings.license.edition
Редакция Deckhouse Kubernetes Platform.
CE— Community Edition.BE— Basic Edition.EE— Enterprise Edition.SE— Standard Edition.SE-plus— Standard Edition+.
По умолчанию:
CEПример:
edition: CE
- строкаsettings.logLevel
Уровень логирования Deckhouse.
По умолчанию:
InfoДопустимые значения:
Debug,Info,ErrorПример:
logLevel: Info - объектsettings.nodeSelector
Структура, аналогичная
spec.nodeSelectorпода Kubernetes.Если значение не указано или указано
false,nodeSelectorбудет определяться автоматически.Внимание. Deckhouse перестанет работать, если в
nodeSelectorуказать несуществующий лейбл. Для восстановления работоспособности необходимо изменить значения на правильные вModuleConfig/deckhouseиdeployment/deckhouse. - объектsettings.registry
Настройки для доступа к хранилищу образов контейнеров (container registry) с образами Deckhouse.
Этот параметр позволяет настроить, как Deckhouse будет подключаться к container registry для загрузки образов своих компонентов. Вы можете либо положиться на предварительно настроенный доступ на узлах кластера (режим
Unmanaged), либо предоставить Deckhouse прямые учетные данные для доступа (режимDirect).Примеры:
registry: mode: Unmanagedregistry: mode: Direct direct: imagesRepo: registry.deckhouse.io/deckhouse/ee license: DECKHOUSE_LICENSE_KEY- объектsettings.registry.direct
Параметры для режима доступа
Direct. Эти параметры обязательны, еслиmodeустановлен вDirect.Примеры:
direct: imagesRepo: registry.deckhouse.io/deckhouse/ee license: DECKHOUSE_LICENSE_KEYdirect: imagesRepo: my-private-registry.com/deckhouse username: user password: password scheme: HTTPS ca: | -----BEGIN CERTIFICATE----- MIIC... -----END CERTIFICATE------ строкаsettings.registry.direct.ca
Корневой сертификат центра сертификации (CA) в формате PEM для проверки серверного сертификата container registry.
Параметр необходимо указывать, если container registry использует самоподписанный сертификат или сертификат, выданный частным центром сертификации.
Если параметр не указан, будут использоваться сертификаты, определенные в хранилище корневых сертификатов узла.
- строкаsettings.registry.direct.imagesRepo
Обязательный параметр
Адрес репозитория в container registry, где хранятся образы Deckhouse. В изолированных средах это может быть адрес частного registry, который зеркалирует публичный.
Шаблон:
^[0-9a-zA-Z\.\-]+(\:[0-9]{1,5})?(\/[0-9a-zA-Z\.\-\_\/]+)?$Примеры:
imagesRepo: registry.deckhouse.io/deckhouse/eeimagesRepo: private-registry:5000/deckhouse/ce - строкаsettings.registry.direct.license
Лицензионный ключ для доступа к container registry Deckhouse. Этот ключ используется в качестве пароля с именем пользователя
license-token. Это поле является взаимоисключающим сusername/password.Пример:
license: DECKHOUSE_LICENSE_KEY - строкаsettings.registry.direct.password
Пароль для аутентификации в container registry.
Параметр обязателен, если не указан параметр
license.Пример:
password: registry-password - строкаsettings.registry.direct.scheme
Протокол для подключения к container registry.
Используйте
HTTPтолько для небезопасных, доверенных container registry (например, в изолированной среде). По умолчанию используетсяHTTPS.По умолчанию:
HTTPSДопустимые значения:
HTTP,HTTPSПример:
scheme: HTTPS - строкаsettings.registry.direct.username
Имя пользователя для аутентификации в реестре контейнеров. Это поле обязательно, если не предоставлен
license.Пример:
username: registry-user
- строкаsettings.registry.mode
Режим доступа к container registry с образами Deckhouse.
Unmanaged— режим по умолчанию. В этом режиме модульregistryне запускает внутренний registry. Доступ к registry настраивается вручную с помощью helper-скриптаchange-registry. Внимание: изменение registry в этом режиме приведет к полному перезапуску всех компонентов Deckhouse.Direct— режим прямого доступа к registry. Используется «виртуальный» адрес registry, который «на лету» подменяется на реальный. Это позволяет изменять registry без полного перезапуска компонентов.
По умолчанию:
DirectДопустимые значения:
Unmanaged,Direct
- строкаsettings.releaseChannel
Желаемый канал обновлений Deckhouse (переключение на него произойдет при появлении такой возможности).
Порядок возрастания стабильности канала обновлений (от наименее стабильного к наиболее стабильному):
Alpha,Beta,EarlyAccess,Stable,RockSolid.Допустимые значения:
Alpha,Beta,EarlyAccess,Stable,RockSolidПример:
releaseChannel: Stable - массив объектовsettings.tolerations
Структура, аналогичная
spec.tolerationsпода Kubernetes.Если значение не указано или указано
false,tolerationsбудет определяться автоматически.Внимание. Deckhouse перестанет работать, если указать некорректные
tolerations. Для восстановления работоспособности необходимо изменить значения на корректные вModuleConfig/deckhouseиdeployment/deckhouse.- строкаsettings.tolerations.effect
- строкаsettings.tolerations.key
- строкаsettings.tolerations.operator
- целочисленныйsettings.tolerations.tolerationSeconds
- строкаsettings.tolerations.value
- объектsettings.update
Настройки режима и окон обновления Deckhouse.
Пример:
update: windows: - from: '8:00' to: '15:00' days: - Tue - Sat disruptionApprovalMode: Manual notification: webhook: https://release-webhook.mydomain.com minimalNotificationTime: 6h auth: basic: username: user password: password- строкаsettings.update.disruptionApprovalModeПараметр устарел
Режим обновления версий Deckhouse, имеющих изменения, которые могут привести к кратковременному простою в работе системных компонентов:
Auto— автоматический режим обновления.Manual— ручной режим обновления. Для применения обновления нужно установить аннотациюrelease.deckhouse.io/disruption-approved=trueна соответствующий ресурс DeckhouseRelease.
По умолчанию:
AutoДопустимые значения:
Auto,Manual - строкаsettings.update.mode
Режим обновления Deckhouse на выбранном канале обновлений.
-
AutoPatch— автоматический режим обновления для патч-версий.Для обновления минорной версии (например, с
v1.69.*наv1.70.*) необходимо подтверждение.Обновление патч-версии (например, с
v1.70.1наv1.70.2) применяется с учетом окон обновлений, если они заданы. -
Auto— автоматический режим обновления для всех версий.Обновления минорной версии (например, с
v1.69.*наv1.70.*) и патч-версии (например, сv1.70.1наv1.70.2) применяются с учетом заданных окон обновлений, либо, если окна обновлений не заданы, по мере появления обновлений на соответствующем канале обновлений. -
Manual— ручной режим обновления для всех версий.Для обновления и минорной, и патч-версии необходимо подтверждение.
Для подтверждения обновления версии установите поле
approvedвtrueв соответствующем ресурсе DeckhouseRelease необходимо установить полеapprovedвtrue.Выбранный режим обновления применяется только при установленном канале обновлений.
По умолчанию:
AutoPatchДопустимые значения:
AutoPatch,Auto,Manual -
- объектsettings.update.notification
Настройка оповещений о запланированном обновлении Deckhouse.
Имеет эффект только при установленном автоматическом режиме обновлений.
Пример:
notification: webhook: https://release-webhook.mydomain.com minimalNotificationTime: 8h retryMinTime: 2s- объектsettings.update.notification.auth
Структура, описывающая способ авторизации на вебхуке.
Если не указано, авторизация не используется.
- объектsettings.update.notification.auth.basic
Basic-аутентификация на вебхуке.
- строкаsettings.update.notification.auth.basic.password
Обязательный параметр
Пароль для авторизации на вебхуке.
Имя и пароль пользователя будут в заголовке
Authorizationв форматеBasic <base64(username:password)>. - строкаsettings.update.notification.auth.basic.username
Обязательный параметр
Имя пользователя для авторизации на вебхуке.
Имя и пароль пользователя будут в заголовке
Authorizationв форматеBasic <base64(username:password)>.
- строкаsettings.update.notification.auth.bearerToken
Токен для авторизации на вебхуке.
Токен будет в заголовке
Authorizationв форматеBearer <token>.
- строкаsettings.update.notification.minimalNotificationTime
Минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.
Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.
Механизм обновления гарантирует, что Deckhouse не обновится, пока не пройдет указанный период времени.
При использовании окон обновлений обновление Deckhouse произойдет в ближайшее возможное окно обновлений, но не ранее чем истечет указанное в
minimalNotificationTimeвремя.Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$Пример:
minimalNotificationTime: 6h - строкаsettings.update.notification.releaseType
Определяет тип версии, о которой будет отправлено оповещение:
Minor— только для обновления минорной версии.All— для любых обновлений, включая обновление патч-версии.
По умолчанию:
MinorДопустимые значения:
All,MinorПример:
releaseType: All - строкаsettings.update.notification.retryMinTime
Минимальный интервал между повторными попытками вызова вебхука при неуспешном запросе.
Задается в виде строки с указанием часов, минут или секунд: 30s, 1m, 2m30s, 1h, 2h30m.
Повторные попытки выполняются с экспоненциальной задержкой: каждый следующий интервал в два раза больше предыдущего. Например, при
retryMinTime = 2sзадержки будут: 2s, 4s, 8s, 16s, 32s.По умолчанию — 2 секунды (если не указано).
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m|[0-9]+s)$Пример:
retryMinTime: 2s - булевыйsettings.update.notification.tlsSkipVerify
Пропустить валидацию TLS-сертификата при запросе вебхука.
По умолчанию:
false - строкаsettings.update.notification.webhook
URL-адрес вебхука.
Вызов вебхука произойдет после появления новой минорной версии Deckhouse на используемом канале обновлений, но до момента ее применения в кластере.
Внимание. При указании неверного адреса вебхука, обновление Deckhouse будет заблокировано.
Используйте параметр minimalNotificationTime при необходимости установить минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.
На адрес вебхука выполняется POST-запрос с
Content-Type: application/json. Пример содержания запроса:{ "subject":"Deckhouse", "version": "1.36.0", "requirements": {"k8s": "1.20.0"}, "changelogLink": "https://github.com/deckhouse/deckhouse/changelog/1.36.md", "applyTime": "2023-01-01T14:30:00Z00:00", "message": "New Deckhouse Release 1.36.0 is available. Release will be applied at: Friday, 01-Jan-23 14:30:00 UTC" }Описание полей POST-запроса:
subject— строка, тип события обновления. Возможные значения:Deckhouse,Module;moduleName— строка, имя модуля. Устанавливается только еслиsubject: Moduleversion— строка в формате x.y.z (семантическое версионирование);requirements— объект, требования к версии;changelogLink— строка, ссылка на список изменений (changelog) минорной версии;applyTime— строка, дата и время запланированного обновления (с учетом установленных окон обновлений) в форматеRFC3339;message— строка, текстовое сообщение о доступности новой минорной версии и запланированном времени обновления.
Шаблон:
^https?://[^\s/$.?#].[^\s]*$Пример:
webhook: https://webhook.site/#!/bc8f71ac-c182-4181-9159-6ba6950afffa
- массив объектовsettings.update.windows
Список окон обновлений в течение суток.
- массив строкsettings.update.windows.days
Дни недели, в которые применяется окно обновлений.
Пример:
days: - Mon - Wed- строкаЭлемент массива
День недели.
Допустимые значения:
Mon,Tue,Wed,Thu,Fri,Sat,SunПример:
Mon
- строкаsettings.update.windows.from
Обязательный параметр
Время начала окна обновления (в часовом поясе UTC).
Должно быть меньше времени окончания окна обновления.
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$Пример:
from: '13:00' - строкаsettings.update.windows.to
Обязательный параметр
Время окончания окна обновления (в часовом поясе UTC).
Должно быть больше времени начала окна обновления.
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$Пример:
to: '18:30'