Работа с зеркалом после инсталляции

Загрузка новых версий в зеркало, доставка обновления в кластеры.

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

Миграция со старого зеркала

При переходе с предыдущей версии модуля зеркала (старый Docker/Podman, другое расположение):

  1. Остановите старое зеркало и при необходимости удалите старый container runtime (например, rm /usr/local/bin/podman или аналогично для вашей установки).
  2. Инициализируйте новое зеркало (stm init или stm bundle make / stm make) и при необходимости укажите сертификаты старого зеркала: --cert-file и --privkey-file с путями к файлам со старого хоста.
  3. Загрузите нужные версии платформы из бандла, из репозитория или из бандла, собранного вручную. Список версий в старом зеркале можно посмотреть в файле $ПУТЬ_ДО_СТАРОГО_ЗЕРКАЛА/images/repo/bin/versions.json.
  4. Для узлов на deb-дистрибутивах после смены зеркала на нодах выполните systemctl restart shturvald и проверьте обновление репозиториев (apt update).

Удаление релиза из зеркала

Чтобы удалить версию платформы из зеркала (освободить место или убрать устаревший релиз):

stm delete --version=2.12.0,2.11.0

Укажите через запятую версии для удаления. Для корректного удаления требуются метаданные (файлы shturval_offline/ВЕРСИЯ/*.json в репозитории); при использовании старых бандлов или stm младше 1.3 может потребоваться обновить stm и повторно загрузить хотя бы один релиз. Удаление не освобождает место на диске автоматически: в Nexus нужно выполнить задачу Compact blob store (Administration → Tasks) для соответствующих blob store (docker, shturval_bin_public, shturval_helm и т.д.).


Работа с патчами

Патч позволяет добавить в зеркало недостающие пакеты или образы без пересборки бандла и без полного обновления зеркала.

Сборка патча (на машине с доступом к репозиторию Штурвала): подготовьте конфиг по образцу config/patch.yaml (список репозиториев и пакетов/образов) и выполните stm patch make --license=XXXX-XXXX-XXXX. Будет создан архив вида shturval-mirror-patch-TIMESTAMP.tgz.

Применение патча: в каталоге с инициализированным зеркалом создайте директорию shturval-patch, поместите в неё архив и выполните stm patch apply. После применения архив можно удалить.


Способы обновления зеркала

  1. Ручная загрузка бандла — бандл новой версии загружается на файлообменник, вы скачиваете и загружаете в зеркало
  2. Pipeline — обновление без ручной загрузки (инструкция в базе знаний Service Desk)

Пошаговая процедура обновления

Шаг 1: Получение и распаковка бандла

Скачайте бандл по ссылке от команды разработки. На хосте зеркала создайте директорию и распакуйте:

mkdir newbundle && cd newbundle
cp /путь/к/загруженному/бандлу.tar.gz .
tar -zxvf имя_бандла.tar.gz
cd ..  # в директорию с текущим зеркалом

Шаг 2: Обновление утилиты stm

Из директории с бандлом:

cp stm путь_к_зеркалу/          # заменить утилиту stm на версию из бандла
cp -rp distr путь_к_зеркалу      # обновить образы контейнеров (Nginx, rewrite-правила)
cd путь_к_зеркалу                # перейти в каталог зеркала
./stm restart                    # перезапустить сервисы зеркала с новой stm и distr

Шаг 3: Загрузка в зеркало

Выполните в директории, где расположено текущее зеркало:

stm bundle load --path=./newbundle/shturval-bundle

Шаг 4: Перезапуск ShturvalUpdateChannel

После обновления зеркала обязательно перезапустите кастомный ресурс ShturvalUpdateChannel в каждом кластере (управления и клиентских), для которого планируется обновление. Без этого новая версия появится не менее чем через 6 часов (реконсиляция).

Через kubectl:

kubectl label ShturvalUpdateChannel shturval-update --namespace shturval-update-system example=restart

Параметр example=restart — произвольный лейбл для триггера реконсиляции.

Через GUI:

  1. АдминистрированиеКастомные ресурсыupdate.shturval.techShturvalUpdateChannel
  2. Откройте ресурс shturval-update
  3. ПроверкаСохранить (без изменений)

Новая версия станет доступна через 5–10 минут.

Шаг 5: Обновление кластеров

Порядок: сначала кластер управления, затем клиентские кластеры.

Подробнее: Процедура обновления, Запуск и этапы обновления.


Условно-закрытый контур (интернет на зеркале)

Если на хосте зеркала есть доступ к r.shturval.tech:

stm download --version=2.14.0

Затем выполните шаги 4 и 5 выше.