До обновления

  1. Скачайте со страницы выпусков github.com/sleep3r/colloq/releases файлы release.json, colloq-deploy.tar.gz и SHA256SUMS выбранной версии. Проверьте суммы командой sha256sum -c SHA256SUMS и манифест командой scripts/cluster.sh validate --release release.json.
  2. Убедитесь, что образы доступны с используемыми registry-правами, а на диске хватает места для backup.
  3. Проверьте заявленную совместимость схемы данных и сохраните внешний backup текущего состояния.
  4. Согласуйте перерыв: приложение, брокер и ядра будут заменены.

Используйте инструменты выбранного выпуска. Установка не подменяет отсутствующий digest и не принимает локально исправленный архив инструментов.

Выполните обновление

sudo scripts/cluster.sh update --release next-release.json
sudo scripts/cluster.sh status
sudo scripts/cluster.sh smoke

Update сначала проверяет совместимость схемы данных, затем делает согласованную переносимую копию — приложение, брокер и ядра комнат останавливаются уже на этом шаге. Только после этого preflight проверяет реальную загрузку образов и запуск от UID 1000. Если он не прошёл, писатели остаются остановленными, а releases/current.json ещё не заменён: устраните причину и повторите update либо верните прежний выпуск командой sudo scripts/cluster.sh start. Копия ложится в backups/ рядом с распакованными инструментами выпуска — перенесите её с сервера. Тетради и файлы остаются; переменные Python теряются.

Update сохраняет /var/lib/colloq/config.env вместе с RUNTIME_KERNEL_MEMORY и RUNTIME_KERNEL_MEMORY_MAX брокера. Чтобы изменить их, передайте исправленный файл: sudo scripts/cluster.sh update --release release.json --env-file instance.env — с тем же выпуском, если меняется только конфигурация.

После обновления проверьте старую комнату, новую комнату, публикации, файлы и исполнение. Убедитесь, что старые занятия продолжают использовать закреплённые ревизии окружений.

Когда нужен откат

sudo scripts/cluster.sh rollback --release previous-release.json
sudo scripts/cluster.sh status
sudo scripts/cluster.sh smoke

Rollback также проверяет совместимость, создаёт consistent-backup и требует перерыва. Возврат старого образа не отменяет несовместимую миграцию базы: в таком случае нужен подходящий backup и процедура восстановления.

При неудачной readiness-проверке желаемый выпуск остаётся записанным, а предыдущий находится в releases/previous.json. Оператор выбирает откат явно; автоматического непроверенного понижения схемы нет.

Версия k3s меняется отдельно

Colloq-выпуск требует точную версию k3s. Её изменение — самостоятельная операция: backup datastore и server token, план обновления k3s, затем Colloq-выпуск, совместимый с новой точной версией. Обычный update приложения не обещает безопасного upgrade кластера.

Старые комнаты и образы

Сохраняйте registry-образы, на которые ссылаются старые комнаты и резервные копии. Даже если окружение исчезло из нового выпуска, каталог сохраняет нужные прежние ревизии. Очистка registry должна учитывать эти ссылки.

Одна VM и локальные тома предполагают обслуживание с перерывом. Этот процесс не обеспечивает HA или обновление без остановки.

Локальная установка через pip

Завершите занятие (colloq stop), сделайте копию colloq backup и обновите пакет: pip install --upgrade colloq. Данные в ~/.colloq обновление не трогает; при следующем colloq start образ ядра пересоберётся, если изменились его Dockerfile или списки пакетов. Откат — установка прежней версии, pip install colloq==<версия>; при сомнениях восстановите копию командой colloq restore --legacy --db <файл.db> --files <архив>.