Обновление платформы конфигурируется в ресурсе ModuleConfig deckhouse.

Посмотреть текущую конфигурацию настроек обновления можно с помощью команды:

1d8 k get mc deckhouse -oyaml

Пример вывода:

1...
2spec:
3  settings:
4    releaseChannel: Stable
5    update:
6      windows:
7        - days:
8            - Mon
9          from: "19:00"
10          to: "20:00"
11...

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

Платформа поддерживает три режима обновления:

  • Автоматический + окна обновлений не заданы. Кластер обновится сразу после появления новой версии на соответствующем канале обновлений.
  • Автоматический + заданы окна обновлений. Кластер обновится в ближайшее доступное окно после появления новой версии на канале обновлений.
  • Ручной режим. Для применения обновления требуются ручные действия.

Пример фрагмента конфигурации для включения автоматического обновления платформы:

1update:
2  mode: Auto

Пример фрагмента конфигурации для включения автоматического обновления платформы с окнами обновлений:

1update:
2  mode: Auto
3  windows:
4    - from: "8:00"
5      to: "15:00"
6      days:
7        - Tue
8        - Sat

Пример фрагмента конфигурации для включения ручного режима обновления платформы:

1update:
2  mode: Manual

Каналы обновлений

Платформа использует пять каналов обновлений, предназначенных для использования в разных окружениях. Компоненты платформы могут обновляться автоматически, либо с ручным подтверждением по мере выхода обновлений в каналах обновления.

Информацию по версиям, доступным на каналах обновления, можно получить на сайте https://releases.deckhouse.ru/.

Чтобы перейти на другой канал обновлений, в конфигурации модуля deckhouse нужно установить параметр .spec.settings.releaseChannel.

Пример конфигурации модуля deckhouse с установленным каналом обновлений Stable:

1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4  name: deckhouse
5spec:
6  version: 1
7  settings:
8    releaseChannel: Stable
  • При смене канала обновлений на более стабильный (например, с Alpha на EarlyAccess) Deckhouse скачивает данные о релизе (в примере — из канала EarlyAccess) и сравнивает их с данными из существующих в кластере ресурсов DeckhouseRelease:
    • Более поздние релизы, которые еще не были применены (в статусе Pending), удаляются.
    • Если более поздние релизы уже применены (в статусе Deployed), смены релиза не происходит. В этом случае платформа останется на таком релизе до тех пор, пока на канале обновлений EarlyAccess не появится более поздний релиз.
  • При смене канала обновлений на менее стабильный (например, с EarlyAcess на Alpha):
    • Deckhouse скачивает данные о релизе (в примере — из канала Alpha) и сравнивает их с данными из существующих в кластере ресурсов DeckhouseRelease.
    • Затем платформа выполняет обновление согласно установленным параметрам обновления.

Посмотреть список релизов платформы можно с использованием следующих команд:

1d8 k get deckhouserelease
2d8 k get modulereleases

Для отключения механизма обновления платформы, удалите в конфигурации модуля deckhouse параметр .spec.settings.releaseChannel. В этом случае платформа не проверяет обновления и обновление на patch-релизы не выполняется.

Крайне не рекомендуется отключать автоматическое обновление! Это заблокирует обновления на patch-релизы, которые могут содержать исправления критических уязвимостей и ошибок.

Немедленное применение обновлений

Чтобы применить обновление немедленно, установите в соответствующем ресурсе DeckhouseRelease аннотацию release.deckhouse.io/apply-now: "true".

Обратите внимание! В этом случае будут проигнорированы окна обновления, настройки canary-release и режим ручного обновления кластера. Обновление применится сразу после установки аннотации.

Пример команды установки аннотации пропуска окон обновлений для версии v1.56.2:

1d8 k annotate deckhousereleases v1.56.2 release.deckhouse.io/apply-now="true"

Пример ресурса с установленной аннотацией пропуска окон обновлений:

1apiVersion: deckhouse.io/v1alpha1
2kind: DeckhouseRelease
3metadata:
4  annotations:
5    release.deckhouse.io/apply-now: "true"