Пример конфигурации модуля

Ниже представлен простой пример конфигурации модуля:

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    logLevel: Debug
9    bundle: Minimal
10    releaseChannel: EarlyAccess

Также можно настроить дополнительные параметры.

Настройка режима обновления

Если в автоматическом режиме окна обновлений не заданы, Deckhouse обновится сразу, как только новый релиз станет доступен.

Patch-версии (например, обновления с 1.26.1 до 1.26.2) устанавливаются без подтверждения и без учета окон обновлений.

Вы также можете настраивать окна disruption-обновлений узлов в custom resource’ах NodeGroup (параметр disruptions.automatic.windows).

Конфигурация окон обновлений

Настроить время, когда Deckhouse будет устанавливать обновления, можно в параметре update.windows конфигурации модуля.

Пример настройки двух ежедневных окон обновлений: с 8:00 до 10:00 и c 20:00 до 22:00 (UTC):

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    releaseChannel: EarlyAccess
9    update:
10      windows: 
11        - from: "8:00"
12          to: "10:00"
13        - from: "20:00"
14          to: "22:00"

Также можно настроить обновления в определенные дни, например по вторникам и субботам с 18:00 до 19:30 (UTC):

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    releaseChannel: Stable
9    update:
10      windows: 
11        - from: "18:00"
12          to: "19:30"
13          days:
14            - Tue
15            - Sat

Ручное подтверждение обновлений

При необходимости возможно включить ручное подтверждение обновлений. Сделать это можно следующим образом:

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    releaseChannel: Stable
9    update:
10      mode: Manual

В этом режиме необходимо подтверждать каждое минорное обновление Deckhouse (без учета patch-версий).

Пример подтверждения обновления на версию v1.43.2:

1kubectl patch DeckhouseRelease v1.43.2 --type=merge -p='{"approved": true}'

Ручное подтверждение потенциально опасных (disruptive) обновлений

При необходимости возможно включить ручное подтверждение потенциально опасных (disruptive) обновлений (которые меняют значения по умолчанию или поведение некоторых модулей). Сделать это можно следующим образом:

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    releaseChannel: Stable
9    update:
10      disruptionApprovalMode: Manual

В этом режиме необходимо подтверждать каждое минорное потенциально опасное (disruptive) обновление Deckhouse (без учета patch-версий) с помощью аннотации release.deckhouse.io/disruption-approved=true на соответствующем ресурсе DeckhouseRelease.

Пример подтверждения минорного потенциально опасного обновления Deckhouse v1.36.4:

1kubectl annotate DeckhouseRelease v1.36.4 release.deckhouse.io/disruption-approved=true

Оповещение об обновлении Deckhouse

В режиме обновлений Auto можно настроить вызов webhook’а для получения оповещения о предстоящем обновлении минорной версии Deckhouse.

Пример настройки оповещения:

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    update:
9      releaseChannel: Stable
10      mode: Auto
11      notification:
12        webhook: https://release-webhook.mydomain.com

После появления новой минорной версии Deckhouse на используемом канале обновлений, но до момента применения ее в кластере на адрес webhook’а будет выполнен POST-запрос.

Чтобы всегда иметь достаточно времени для реакции на оповещение об обновлении Deckhouse, достаточно настроить параметр minimalNotificationTime. В этом случае обновление случится по прошествии указанного времени с учетом окон обновлений.

Пример:

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    update:
9      releaseChannel: Stable
10      mode: Auto
11      notification:
12        webhook: https://release-webhook.mydomain.com
13        minimalNotificationTime: 8h

Если не указать адрес в параметре update.notification.webhook, но указать время в параметре update.notification.minimalNotificationTime, применение новой версии все равно будет отложено как минимум на указанное в параметре minimalNotificationTime время. В этом случае оповещением о появлении новой версии можно считать появление в кластере ресурса DeckhouseRelease, имя которого соответствует новой версии.

Сбор информации для отладки

О сборе отладочной информации читайте в FAQ.