Обновление On-Prem

Как обновить Oopps.ai On-Prem после отдельной проверки резервной копии, release notes и значений текущего Helm-релиза.

Команда обновления

Обновление выполняется стандартной командой helm upgrade:

helm upgrade oopps-platform \
  oci://cr.yandex/crpmb7aia1nose81sno1/oopps/platform/chart \
  --namespace oopps \
  -f values-marketplace.yaml

Helm обновит образы и конфигурацию. Перед запуском сохраните текущие values командой helm get values oopps-platform -n oopps -o yaml и проверьте план обновления в тестовой среде. Для релиза с одной репликой не обещается отсутствие перерыва.

Совет

Для обновления до конкретной версии добавьте флаг --version:

helm upgrade oopps-platform \
  oci://cr.yandex/crpmb7aia1nose81sno1/oopps/platform/chart \
  --namespace oopps \
  -f values-marketplace.yaml \
  --version <CHART_VERSION>

Резервная копия БД

По умолчанию pre-upgrade backup в чарте выключен. Для встроенного PostgreSQL его можно включить только с существующим durable PVC:

backup:
  enabled: true
  existingClaim: oopps-backups
  mountPath: /backup

В этом режиме Helm запускает Job oopps-platform-db-backup с pg_dump перед обновлением. Для внешнего PostgreSQL hook не работает: используйте snapshot/PITR или проверенный процесс резервного копирования вашей БД. До обновления обязательно проверьте, что backup можно восстановить.

Процесс обновления со включённым hook:

1. Pre-upgrade hook

Helm запускает Job oopps-platform-db-backup. Job выполняет pg_dump и сохраняет дамп. Обновление не начнётся, пока бэкап не завершится успешно.

2. Обновление подов

После успешного бэкапа Helm обновляет Deployment’ы. Фактическая доступность зависит от количества реплик, readiness probes, PDB и совместимости миграций.

3. Миграции БД

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

Важно

Если pre-upgrade hook завершается с ошибкой (например, нет доступа к БД), обновление будет отменено. Проверьте логи Job:

kubectl logs job/oopps-platform-db-backup -n oopps

Проверка после обновления

После выполнения helm upgrade убедитесь, что всё работает:

# Проверить статус подов
kubectl get pods -n oopps

# Проверить rollout
kubectl rollout status deployment -n oopps --timeout=120s

# Проверить логи backend
kubectl logs -l app=backend -n oopps --tail=20

# Проверить версию
helm list -n oopps

Совместимость версий

helm rollback oopps-platform -n oopps

Откат восстановит предыдущую версию подов. Если миграции БД уже применены, может потребоваться восстановление из бэкапа.

Обновление агентов

Если вы используете oopps-agent в дополнительных кластерах, обновите их отдельно:

helm upgrade oopps-agent \
  oci://cr.yandex/crpmb7aia1nose81sno1/oopps/platform/agent \
  --namespace oopps-system \
  --reuse-values
Совет

Сверьте совместимость агента с release notes поставки. Не считайте произвольные версии агента и backend совместимыми без проверки heartbeat, snapshot и метрик после обновления.

Что дальше?