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

Как обновить Oopps.ai On-Prem до новой версии с минимальным простоем и автоматическим бэкапом базы данных.

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

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

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

Helm автоматически обновит образы контейнеров и применит изменения в конфигурации. Поды будут пересозданы с rolling update — простой минимален.

Совет

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

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

Автоматический бэкап БД

Helm-чарт содержит pre-upgrade hook — перед каждым обновлением автоматически запускается Job, который выполняет pg_dump базы данных.

Процесс обновления:

1. Pre-upgrade hook

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

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

После успешного бэкапа Helm обновляет Deployment’ы. Rolling update гарантирует, что хотя бы один под остаётся доступным.

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

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

Важно

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

kubectl logs job/oopps-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/oopps-agent \
  --namespace oopps-system \
  --reuse-values
Совет

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

Что дальше?