Документация находится в разработке, может содержать неполную информацию.

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

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

d8 k get mc deckhouse -oyaml

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

...
spec:
  settings:
    releaseChannel: Stable
    update:
      windows:
        - days:
            - Mon
          from: "19:00"
          to: "20:00"
...

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

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

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

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

update:
  mode: Auto

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

update:
  mode: Auto
  windows:
    - from: "8:00"
      to: "15:00"
      days:
        - Tue
        - Sat

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

update:
  mode: Manual

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

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

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

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

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

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

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

d8 k get deckhouserelease
d8 k get modulereleases

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

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

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

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

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

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

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

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

apiVersion: deckhouse.io/v1alpha1
kind: DeckhouseRelease
metadata:
  annotations:
    release.deckhouse.io/apply-now: "true"