Установка On-Prem

Пошаговая инструкция по развёртыванию Oopps.ai в вашем кластере Kubernetes с помощью Helm.

Минимальные требования к ресурсам

КомпонентCPU (request)RAM (request)RAM (limit)
Backend100m512 Mi1 Gi
Frontend50m64 Mi128 Mi
PostgreSQL (встроенная)100m256 Mi512 Mi
Итого250m832 Mi1.6 Gi

Системные компоненты Kubernetes (kube-proxy, CoreDNS, metrics-server и др.) занимают дополнительно 300–500 MiB RAM.

КонфигурацияvCPURAM
Минимум (тестирование)24 GB
Рекомендация (прод)48 GB
Важно

Ноды с 2 GB RAM недостаточно — после системных компонентов Kubernetes не останется места для backend-пода (512 Mi request). Backend останется в статусе Pending.

Предварительные требования

Ingress Controller

В Yandex Cloud рекомендуется использовать Gwin (встроенный Ingress Controller). Для других облаков и on-prem кластеров подойдёт nginx-ingress или любой другой контроллер, поддерживающий стандартные аннотации Ingress.

Установка через Helm

1. Установите платформу

Выполните команду helm install с OCI-чартом:

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

Файл values-marketplace.yaml содержит параметры вашей инсталляции. Пример минимальной конфигурации:

# values-marketplace.yaml
global:
  domain: oopps.example.com

externalDatabase:
  host: rc1a-xxx.mdb.yandexcloud.net
  port: 6432
  database: oopps
  user: oopps
  password: "<DB_PASSWORD>"

autoConnector:
  billingAccountID: "dn2xxxxxxxxxxxxxx"   # опционально, для биллинга

2. Проверьте статус подов

kubectl get pods -n oopps

Все поды должны перейти в статус Running в течение 2–3 минут.

3. Откройте доступ к платформе

Выберите один из трёх способов:

Вариант A: Port Forward (быстрый тест)

Самый простой способ — без внешнего IP, без домена, без TLS. Подходит для первого знакомства.

kubectl port-forward svc/frontend 8080:80 -n oopps

Откройте http://localhost:8080/login в браузере.

Важно

Переходите сразу на /login или /register. Если открыть корень /, произойдёт редирект и порт :8080 может потеряться из URL.

Вариант B: LoadBalancer (внешний IP без домена)

Платформа получит публичный IP от облачного провайдера:

kubectl patch svc frontend -n oopps \
  -p '{"spec":{"type":"LoadBalancer"}}'

Дождитесь получения внешнего IP:

kubectl get svc frontend -n oopps -w

Когда в колонке EXTERNAL-IP появится адрес, откройте http://<EXTERNAL-IP>/login в браузере.

Вариант C: Ingress + DNS + TLS (продакшн)

Установите Ingress Controller (nginx-ingress или Gwin/ALB для Yandex Cloud). Затем:

  1. Узнайте IP Ingress Controller:
    kubectl get svc -A | grep -i ingress
  2. Создайте A-запись в DNS: oopps.example.com → <IP>
  3. Настройте TLS — через cert-manager:
    ingress:
      tls:
        enabled: true
        clusterIssuer: letsencrypt-prod
    или вручную:
    kubectl create secret tls oopps-tls \
      --cert=fullchain.pem --key=privkey.pem -n oopps

4. Зарегистрируйте первого пользователя

Откройте /register по адресу платформы (например, http://localhost:8080/register для port-forward или https://oopps.example.com/register для Ingress). При регистрации первого пользователя автоматически создаётся организация и коннектор через metadata-сервис.

Авто-коннектор определяет folder_id и получает IAM-токен от сервисного аккаунта ноды (169.254.169.254). Если указан autoConnector.billingAccountID — данные биллинга также будут доступны сразу.

Параметры конфигурации

ПараметрПо умолчаниюОписание
global.domain Домен для доступа к платформе (обязательно)
externalDatabase.host Хост PostgreSQL (если не указан, используется встроенная БД)
externalDatabase.port 6432 Порт PostgreSQL
externalDatabase.database oopps Имя базы данных
externalDatabase.user oopps Пользователь PostgreSQL
externalDatabase.password Пароль PostgreSQL
autoConnector.billingAccountID ID биллинг-аккаунта Yandex Cloud (опционально, для биллинга)
ingress.tls.enabled true Включить TLS
ingress.tls.clusterIssuer Имя ClusterIssuer для cert-manager
ingress.tls.secretName Имя TLS-секрета (если без cert-manager)

Настройка выделенного сервисного аккаунта

По умолчанию авто-коннектор использует сервисный аккаунт ноды. Для продакшн-среды рекомендуется создать выделенный сервисный аккаунт с минимально необходимыми правами.

После установки откройте настройки коннектора в UI платформы и измените метод аутентификации на авторизованный ключ выделенного сервисного аккаунта.

Мульти-кластер

Для мониторинга дополнительных кластеров установите Helm-чарт oopps-agent:

helm install oopps-agent \
  oci://cr.yandex/crpmb7aia1nose81sno1/oopps/platform/oopps-agent \
  --namespace oopps-system --create-namespace \
  --set agentToken=<TOKEN>

Токен можно получить в UI платформы: коннектор → вкладка АгентыЗарегистрировать агент.

Что дальше?