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

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

Чтобы явно включить или выключить модуль deckhouse, установите spec.enabled в true или false в ModuleConfig/deckhouse (создайте, при необходимости), или воспользуйтесь командой deckhouse-controller module в поде d8-system/deckhouse.

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

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: deckhouse
    spec:
      enabled: true
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module enable deckhouse
    

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

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: deckhouse
    spec:
      enabled: false
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module disable deckhouse
    

Чтобы настроить модуль, используйте 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 на соответствующий ресурс DeckhouseRelease.

      По умолчанию: "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.

      Имеет эффект только при установленном автоматическом режиме обновлений.

      Пример:

      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.releaseType
        строка

        Определяет тип версии, о которой будет отправлено оповещение:

        • Minor — только для обновления минорной версии.
        • All — для любых обновлений, включая обновление патч-версии.

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

        Допустимые значения: All, Minor

        Пример:

        releaseType: All
        
      • update.notification.tlsSkipVerify
        булевый

        Пропустить валидацию TLS-сертификата при запросе webhook.

        По умолчанию: false

      • update.notification.webhook
        строка

        URL-адрес webhook’а.

        Вызов 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
        
    • 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'