Предварительная проверка

Отдельный сценарий предварительной проверки не требуется: основной установщик выполняет preflight до внесения изменений в кластер. Перед запуском можно проверить локальные инструменты и доступ к Kubernetes:

cd polymatica-ml-offline
bash -n install/offline-install.sh
command -v kubectl helm docker python3 curl jq sha256sum tar xz gzip
kubectl cluster-info
kubectl get nodes

Исправьте обнаруженные ошибки до начала установки.

Первоначальная установка

Запустите:

./install/offline-install.sh \
  --config install/offline-install.conf

Установщик проверит файлы поставки, загрузит образы, развернёт инфраструктуру и сервисы Polymatica ML, после чего выполнит smoke-проверку.

Установка без загрузки образов

Если все образы уже находятся в целевом registry:

./install/offline-install.sh \
  --config install/offline-install.conf \
  --skip-images

Зафиксированные в поставке теги и digest образов должны присутствовать в registry до запуска команды.

Обновление

Для обновления распакуйте новую поставку в отдельный каталог, подготовьте конфигурацию и выполните ту же команду:

./install/offline-install.sh \
  --config install/offline-install.conf

Перед обновлением установщик создаёт резервные копии PostgreSQL и S3 в каталоге, указанном в OFFLINE_BACKUP_DIR.

Для внешнего PostgreSQL необходимо заранее создать резервную копию средствами заказчика и указать её идентификатор:

OFFLINE_EXTERNAL_PG_BACKUP_REFERENCE=<путь или идентификатор>

Обновление старой Redis-инсталляции

Если существующий стенд использует несовместимый формат Redis PVC, предварительно завершите активные задачи Celery.

Для однократного пересоздания Redis укажите:

OFFLINE_ALLOW_REDIS_DATA_RESET=true

После успешного обновления верните значение:

OFFLINE_ALLOW_REDIS_DATA_RESET=false

Проверка после установки

export NS=offline

kubectl get pods -n "$NS" -o wide
kubectl get jobs -n "$NS"
kubectl get pvc -n "$NS"
kubectl get ingress -n "$NS"

./install/offline-smoke.sh --namespace "$NS"

Smoke-проверка должна завершиться успешно.

Восстановление из резервной копии

Остановите пользовательскую нагрузку и выполните:

OFFLINE_RESTORE_CONFIRM=true \
  ./install/offline-restore.sh \
  --namespace offline \
  --backup-dir ./backups/offline-<UTC-время>

После восстановления повторно установите предыдущую версию дистрибутива. Это восстановит Devpi из snapshot соответствующей поставки и приведёт Helm-релизы к согласованным версиям.

Затем выполните:

./install/offline-smoke.sh --namespace offline

Расширенная диагностика

Для вывода дополнительных диагностических сообщений:

OFFLINE_DEBUG=true \
  ./install/offline-install.sh \
  --config install/offline-install.conf

Диагностический режим не выводит значения паролей и Secret.