Работа с зеркалом после инсталляции
Загрузка новых версий в зеркало, доставка обновления в кластеры.
После инсталляции платформы в закрытом контуре зеркало используется для доставки обновлений. При выходе новой версии платформы необходимо обновить зеркало, затем — кластеры.
Миграция со старого зеркала
При переходе с предыдущей версии модуля зеркала (старый Docker/Podman, другое расположение):
- Остановите старое зеркало и при необходимости удалите старый container runtime (например,
rm /usr/local/bin/podmanили аналогично для вашей установки). - Инициализируйте новое зеркало (
stm initилиstm bundle make/stm make) и при необходимости укажите сертификаты старого зеркала:--cert-fileи--privkey-fileс путями к файлам со старого хоста. - Загрузите нужные версии платформы из бандла, из репозитория или из бандла, собранного вручную. Список версий в старом зеркале можно посмотреть в файле
$ПУТЬ_ДО_СТАРОГО_ЗЕРКАЛА/images/repo/bin/versions.json. - Для узлов на 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. После применения архив можно удалить.
Способы обновления зеркала
- Ручная загрузка бандла — бандл новой версии загружается на файлообменник, вы скачиваете и загружаете в зеркало
- 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:
- Администрирование → Кастомные ресурсы →
update.shturval.tech→ ShturvalUpdateChannel - Откройте ресурс
shturval-update - Проверка → Сохранить (без изменений)
Новая версия станет доступна через 5–10 минут.
Шаг 5: Обновление кластеров
Порядок: сначала кластер управления, затем клиентские кластеры.
Подробнее: Процедура обновления, Запуск и этапы обновления.
Условно-закрытый контур (интернет на зеркале)
Если на хосте зеркала есть доступ к r.shturval.tech:
stm download --version=2.14.0
Затем выполните шаги 4 и 5 выше.