Модуль включен по умолчанию в наборах модулей: 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
— минимально возможная поставка, которая включает единственный модуль (этот).
По умолчанию:
"Default"
Допустимые значения:
Default
,Minimal
,Managed
Пример:
bundle: Default
- logLevelстрока
Уровень логирования Deckhouse.
По умолчанию:
"Info"
Допустимые значения:
Debug
,Info
,Error
Пример:
logLevel: Info
- nodeSelectorобъект
Структура, аналогичная
spec.nodeSelector
Kubernetes Pod.Если ничего не указано или указано
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 Pod.Если ничего не указано или указано
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-версий оповещения не отправляются.
Пример:
notification: webhook: https://release-webhook.mydomain.com minimalNotificationTime: 8h
- update.notification.authобъект
Структура, описывающая способ авторизации на webhook.
Если не указано — авторизация не используется.
- update.notification.auth.basicобъект
Basic authentication settings for the webhook.
If the parameter is omitted, the webhook will be called without authentication.
- update.notification.auth.basic.passwordстрока
Обязательный параметр
The password for the webhook.
The username and password will be sent in the
Authorization
header in the formatBasic <base64(username:password)>
. - update.notification.auth.basic.usernameстрока
Обязательный параметр
The username for the webhook.
The username and password will be sent in the
Authorization
header in the formatBasic <base64(username:password)>
.
- update.notification.auth.basic.passwordстрока
- update.notification.auth.bearerTokenстрока
The token for the webhook.
The token will be sent in the
Authorization
header in the formatBearer <token>
.
- update.notification.auth.basicобъект
- update.notification.minimalNotificationTimeстрока
Минимальное время которое должно пройти перед обновлением с момента оповещения.
Механизм обновления гарантирует, что Deckhouse не обновится раньше указанного времени.
При использовании окон обновлений, обновление Deckhouse после оповещения произойдет в ближайшее возможное окно обновлений, но не ранее чем истечет указанное в
minimalNotificationTime
время.Шаблон:
^[0-9]+[mh]{1}$
Пример:
minimalNotificationTime: 6h
- update.notification.tlsSkipVerifyбулевый
Пропустить валидацию TLS сертификата при запросе webhook.
По умолчанию:
false
- update.notification.webhookстрока
URL-адрес webhook’а.
Вызов webhook’а произойдет после появления новой минорной версии Deckhouse на используемом канале обновлений, но до момента ее применения в кластере.
Используйте параметр minimalNotificationTime при необходимости установить минимальное время, которое должно пройти перед обновлением с момента оповещения.
На адрес 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.notification.authобъект
- 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'
- update.windows.daysмассив строк
- update.disruptionApprovalModeстрока