Установка On-Prem
Пошаговая инструкция по развёртыванию Oopps.ai в вашем кластере Kubernetes с помощью Helm.
Минимальные требования к ресурсам
| Компонент | CPU (request) | RAM (request) | RAM (limit) |
|---|---|---|---|
| Backend | 100m | 512 Mi | 1 Gi |
| Frontend | 50m | 64 Mi | 128 Mi |
| PostgreSQL (встроенная) | 100m | 256 Mi | 512 Mi |
| Итого | 250m | 832 Mi | 1.6 Gi |
Системные компоненты Kubernetes (kube-proxy, CoreDNS, metrics-server и др.) занимают дополнительно 300–500 MiB RAM.
| Конфигурация | vCPU | RAM |
|---|---|---|
| Минимум (тестирование) | 2 | 4 GB |
| Рекомендация (прод) | 4 | 8 GB |
Ноды с 2 GB RAM недостаточно — после системных компонентов
Kubernetes не останется места для backend-пода (512 Mi request).
Backend останется в статусе Pending.
Предварительные требования
- Kubernetes 1.23+ — managed или self-managed кластер
- Helm 3.x — установлен локально
- Ingress Controller — рекомендуется Gwin (Yandex Cloud) или nginx-ingress
- PostgreSQL — Managed PostgreSQL (рекомендуется) или встроенная БД
- Домен — для доступа к платформе (например,
oopps.example.com)
В 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). Затем:
- Узнайте IP Ingress Controller:
kubectl get svc -A | grep -i ingress - Создайте A-запись в DNS:
oopps.example.com → <IP> - Настройте TLS — через cert-manager:
или вручную:ingress: tls: enabled: true clusterIssuer: letsencrypt-prodkubectl 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 платформы: коннектор → вкладка Агенты → Зарегистрировать агент.
Что дальше?
- Обновление — как обновить платформу до новой версии
- Решение проблем — если что-то пошло не так
- Аудит Kubernetes — как работает анализ кластеров
- Рекомендации — типы рекомендаций и расчёт экономии