Доступно в редакциях: 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.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"
Допустимые значения:
CE
,BE
,EE
,SE
,SE-plus
Пример:
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: Unmanaged
registry: 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_KEY
direct: 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/ee
imagesRepo: 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
- settings.update.notification.auth
Структура, описывающая способ авторизации на webhook.
Если не указано, авторизация не используется.
- settings.update.notification.auth.basic
Basic-аутентификация на webhook.
- settings.update.notification.auth.basic.password
Обязательный параметр
Пароль для авторизации на webhook.
Имя и пароль пользователя будут в заголовке
Authorization
в форматеBasic <base64(username:password)>
. - settings.update.notification.auth.basic.username
Обязательный параметр
Имя пользователя для авторизации на webhook.
Имя и пароль пользователя будут в заголовке
Authorization
в форматеBasic <base64(username:password)>
.
- settings.update.notification.auth.bearerToken
Токен для авторизации на webhook.
Токен будет в заголовке
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.tlsSkipVerify
Пропустить валидацию TLS-сертификата при запросе webhook.
По умолчанию:
false
- settings.update.notification.webhook
URL-адрес webhook’а.
Вызов webhook’а произойдет после появления новой минорной версии Deckhouse на используемом канале обновлений, но до момента ее применения в кластере.
Внимание! При указании неверного адреса webhook’а, обновление Deckhouse будет заблокировано.
Используйте параметр minimalNotificationTime при необходимости установить минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.
На адрес webhook’а выполняется 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: Module
version
— строка в формате 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'