Модуль включен по умолчанию в наборах модулей: Default, Managed, Minimal.
Чтобы настроить модуль, используйте custom resource ModuleConfig с именем deckhouse (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/deckhouse для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- строкаbundle
Набор модулей Deckhouse. Определяет включенные по умолчанию модули:
Default— рекомендованный набор модулей для работы кластера: мониторинга, контроля авторизации, организации работы сети и других потребностей.Managed— поставка для managed-кластеров от облачных провайдеров (например, Google Kubernetes Engine).Minimal— минимально возможная поставка, которая включает единственный модуль (этот). Обратите внимание, что в набор модулейMinimalне включен ряд базовых модулей (например, модуль работы с CNI). Deckhouse с набором модулейMinimalбез включения базовых модулей сможет работать только в уже развернутом кластере.
По умолчанию:
"Default"Допустимые значения:
Default,Minimal,ManagedПример:
bundle: Default - булевыйhighAvailability
Ручное управление режимом отказоустойчивости.
По умолчанию режим отказоустойчивости определяется автоматически. Подробнее про режим отказоустойчивости.
Пример:
highAvailability: true - строкаlogLevel
Уровень логирования Deckhouse.
По умолчанию:
"Info"Допустимые значения:
Debug,Info,ErrorПример:
logLevel: Info - объектnodeSelector
Структура, аналогичная
spec.nodeSelectorпода Kubernetes.Если ничего не указано или указано
false,nodeSelectorбудет определяться автоматически.Внимание! Deckhouse перестанет работать, если в
nodeSelectorуказать несуществующий лейбл. Для восстановления работоспособности необходимо изменить значения на правильные вModuleConfig/deckhouseиdeployment/deckhouse. - строкаreleaseChannel
Желаемый канал обновлений Deckhouse (переключение на него произойдет при появлении такой возможности).
Порядок возрастания стабильности канала обновлений (от наименее стабильного к наиболее стабильному):
Alpha,Beta,EarlyAccess,Stable,RockSolid.Допустимые значения:
Alpha,Beta,EarlyAccess,Stable,RockSolidПример:
releaseChannel: Stable - массив объектовtolerations
Структура, аналогичная
spec.tolerationsпода Kubernetes.Если ничего не указано или указано
false,tolerationsбудет определяться автоматически.Внимание! Deckhouse перестанет работать, если указать некорректные
tolerations. Для восстановления работоспособности необходимо изменить значения на корректные вModuleConfig/deckhouseиdeployment/deckhouse.- строкаtolerations.effect
- строкаtolerations.key
- строкаtolerations.operator
- целочисленныйtolerations.tolerationSeconds
- строкаtolerations.value
- объект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- строкаupdate.disruptionApprovalMode
Режим обновления версий Deckhouse, имеющих disruptions (потенциально опасные изменения):
Auto(автоматический) — обновления применяются автоматически.Manual(ручной) — для обновления требуется ручное подтверждение (установка аннотацииrelease.deckhouse.io/disruption-approved=true).
По умолчанию:
"Auto"Допустимые значения:
Auto,Manual - строкаupdate.mode
Режим обновления минорных версий Deckhouse (обновление релиза). Не влияет на обновление patch-версий (patch-релизов).
-
Auto(автоматический) — все обновления применяются автоматически.Обновления минорной версии Deckhouse (обновление релиза, например, с
v1.26.*наv1.27.*) применяются с учетом заданных окон обновлений либо, если окна обновлений не заданы, по мере появления обновлений на соответствующем канале обновлений. -
Manual(ручной) — для обновления минорной версии Deckhouse в ручном режиме (обновление релиза, например, сv1.26.*наv1.27.*) необходимо подтверждение.Для подтверждения обновления в соответствующем custom resource
DeckhouseReleaseнеобходимо установить полеapprovedвtrue.
По умолчанию:
"Auto"Допустимые значения:
Auto,Manual -
- объектupdate.notification
Настройка оповещений о запланированном обновлении Deckhouse.
Имеет эффект только при установленном автоматическом режиме обновлений и только при смене минорных версий Deckhouse (при изменении patch-версий настройки параметра
notificationsигнорируются).Пример:
notification: webhook: https://release-webhook.mydomain.com minimalNotificationTime: 8h- объектupdate.notification.auth
Структура, описывающая способ авторизации на webhook.
Если не указано, авторизация не используется.
- объектupdate.notification.auth.basic
Basic-аутентификация на webhook.
- строкаupdate.notification.auth.basic.password
Обязательный параметр
Пароль для авторизации на webhook.
Имя и пароль пользователя будут в заголовке
Authorizationв форматеBasic <base64(username:password)>. - строкаupdate.notification.auth.basic.username
Обязательный параметр
Имя пользователя для авторизации на webhook.
Имя и пароль пользователя будут в заголовке
Authorizationв форматеBasic <base64(username:password)>.
- строкаupdate.notification.auth.bearerToken
Токен для авторизации на webhook.
Токен будет в заголовке
Authorizationв форматеBearer <token>.
- строкаupdate.notification.minimalNotificationTime
Минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.
Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.
Механизм обновления гарантирует, что Deckhouse не обновится, пока не пройдет указанный период времени.
При использовании окон обновлений обновление Deckhouse произойдет в ближайшее возможное окно обновлений, но не ранее чем истечет указанное в
minimalNotificationTimeвремя.Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$Пример:
minimalNotificationTime: 6h - булевыйupdate.notification.tlsSkipVerify
Пропустить валидацию TLS-сертификата при запросе webhook.
По умолчанию:
false - строкаupdate.notification.webhook
URL-адрес webhook’а.
Вызов webhook’а произойдет после появления новой минорной версии Deckhouse на используемом канале обновлений, но до момента ее применения в кластере.
Используйте параметр minimalNotificationTime при необходимости установить минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.
На адрес webhook’а выполняется POST-запрос с
Content-Type: application/json. Пример содержания запроса:{ "version": "1.36", "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 is available. Release will be applied at: Friday, 01-Jan-23 14:30:00 UTC" }Описание полей POST-запроса:
version— строка, номер минорной версии;requirements— объект, требования к версии;changelogLink— строка, ссылка на список изменений (changelog) минорной версии;applyTime— строка, дата и время запланированного обновления (с учетом установленных окон обновлений) в форматеRFC3339;message— строка, текстовое сообщение о доступности новой минорной версии и запланированном времени обновления.
Шаблон:
^https?://[^\s/$.?#].[^\s]*$Пример:
webhook: https://webhook.site/#!/bc8f71ac-c182-4181-9159-6ba6950afffa
- массив объектовupdate.windows
Список окон обновлений в течение суток.
- массив строкupdate.windows.days
Дни недели, в которые применяется окно обновлений.
Пример:
days: - Mon - Wed- строкаЭлемент массива
День недели.
Допустимые значения:
Mon,Tue,Wed,Thu,Fri,Sat,SunПример:
Mon
- строкаupdate.windows.from
Обязательный параметр
Время начала окна обновления (в часовом поясе UTC).
Должно быть меньше времени окончания окна обновления.
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$Пример:
from: '13:00' - строкаupdate.windows.to
Обязательный параметр
Время окончания окна обновления (в часовом поясе UTC).
Должно быть больше времени начала окна обновления.
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$Пример:
to: '18:30'