Модуль включен по умолчанию в наборах модулей: Default, Managed, Minimal.

Как явно включить или отключить модуль…

Обратите внимание, что при установке Deckhouse для явного включения/отключения и настройки модуля используется параметр configOverrides ресурса InitConfiguration, а не ModuleConfig.

Чтобы явно включить или выключить модуль deckhouse при установке Deckhouse, укажите deckhouseEnabled: true или deckhouseEnabled: false в секции configOverrides.

Чтобы задать настройки модуля при установке Deckhouse, используйте секцию deckhouse параметра configOverrides.

Чтобы явно включить или выключить модуль deckhouse, установите spec.enabled в true или false в ModuleConfig/deckhouse.

Пример включения модуля deckhouse:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  enabled: true

Пример выключения модуля deckhouse:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  enabled: false

Чтобы настроить модуль используйте 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
    
  • logLevelстрока

    Уровень логирования Deckhouse.

    По умолчанию: "Info"

    Допустимые значения: Debug, Info, Error

    Пример:

    logLevel: Info
    
  • nodeSelectorобъект

    Структура, аналогичная spec.nodeSelector Kubernetes Pod.

    Если ничего не указано или указано falsenodeSelector будет определяться автоматически.

    Внимание! 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.

    Если ничего не указано или указано falsetolerations будет определяться автоматически.

    Внимание! 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'