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

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

Установите spec.enabled в true или false в настройках модуля для его явного включения или выключения.

Пример включения модуля 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 — минимально возможная поставка, которая включает единственный модуль (этот).

    По умолчанию: "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-версий оповещения не отправляются.

      Пример:

      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 format Basic <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 format Basic <base64(username:password)>.

        • update.notification.auth.bearerTokenстрока

          The token for the webhook.

          The token will be sent in the Authorization header in the format Bearer <token>.

      • 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.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'