Ручная установка компонентов¶
Каждый компонент AppSec.GenAI v2 — отдельный Helm-чарт из Harbor OCI-реестра. Устанавливаются независимо в любом порядке (в пределах одной группы), через Helm, ArgoCD, FluxCD или Helmfile.
Порядок установки¶
Компоненты устанавливаются в 5 групп. Внутри группы — параллельно, группы строго последовательно.
graph TD
subgraph G1["1 — Инфраструктура (параллельно)"]
PG[postgres]
RD[redis]
NT[nats]
MN[minio]
end
subgraph G2["2 — Auth"]
KC[keycloak]
GW[genai-gateway]
end
subgraph G3["3 — Ядро"]
MM[model-mgmt]
SP[scan-profile]
AS[auth-service]
LS[license-service]
RS[results]
end
subgraph G4["4 — Атакующие"]
JB[jailbreak]
ASR[asr]
CV[cv]
OR[orchestrator]
end
subgraph G5["5 — Фронтенд"]
UG[ui-gateway]
UI[ui]
end
PG --> KC
PG --> MM
PG --> SP
PG --> AS
PG --> LS
PG --> RS
RD --> MM
RD --> AS
RD --> OR
NT --> OR
NT --> JB
NT --> RS
MN --> MM
MN --> SP
MN --> JB
KC --> AS
GW --> AS
MM --> JB
MM --> ASR
MM --> CV
MM --> OR
SP --> JB
SP --> ASR
SP --> CV
SP --> OR
RS --> UG
OR --> UG
UG --> UI
Почему такой порядок:
| Группа | Зависимости |
|---|---|
| 1 — Инфраструктура | нет зависимостей, стартуют параллельно |
| 2 — Auth & Gateway | keycloak ждёт postgres; genai-gateway ждёт keycloak (OIDC) |
| 3 — Ядро | все сервисы ждут postgres/redis/nats/minio; auth-service ждёт keycloak |
| 4 — Атакующие | jailbreak/asr/cv ждут model-mgmt + scan-profile (включая seed) |
| 5 — Фронтенд | ui-gateway ждёт все API-сервисы |
scan-profile seed
Устанавливайте группу 4 только после того как scan-profile pod перейдёт в Ready — seed-контейнер должен загрузить 27+ типов атак в БД. --wait в helm install это обеспечивает автоматически.
Чарты в Harbor¶
Базовый OCI-путь: oci://registry.appsec.global/appsecgenai-release/charts/<chart>
Версия чарта совпадает с версией продукта (например 2026.5.1).
Инфраструктурные чарты¶
| Чарт | Назначение | Страница |
|---|---|---|
postgres |
PostgreSQL — основная БД | → |
redis |
Redis — кеш и очереди | → |
nats |
NATS JetStream — шина событий | → |
minio |
MinIO — S3-хранилище | → |
keycloak |
Keycloak — SSO (только auth=true) |
→ |
genai-gateway |
Envoy Gateway — ingress + OIDC | → |
Продуктовые чарты¶
| Чарт | Сервис (K8s name) | Порт | Назначение | Страница |
|---|---|---|---|---|
model-mgmt |
model-mgmt |
8000 | Каталог AI/ML-моделей | → |
scan-profile |
scan-profile |
8000 | Профили сканирования | → |
auth-service |
auth-service |
8000 | JWT и сессии | → |
license-service |
license-service |
8000 | Управление лицензиями | → |
results |
results |
8002 | Результаты сканирований | → |
jailbreak |
jailbreak-api |
8000 | Jailbreak-атаки на LLM | → |
asr |
asr-api |
8000 | Атаки на ASR-модели | → |
cv |
cv-api |
8000 | Атаки на CV-модели | → |
orchestrator |
orchestrator |
8000 | Оркестратор сканирований | → |
ui-gateway |
ui-gateway |
3000 | BFF / API Gateway | → |
ui |
ui |
8080 | Angular SPA + Nginx | → |
results — порт 8002
Сервис results слушает на порту 8002, не 8000. Учитывайте при настройке HTTPRoute и health-check.
Базовая команда helm install¶
helm upgrade --install <release-name> \
oci://registry.appsec.global/appsecgenai-release/charts/<chart-name> \
--version <VERSION> \
-n genai --create-namespace \
-f values-<chart-name>.yaml
Secret'ы, создаваемые инфра-чартами¶
Продуктовым сервисам нужны credentials от инфра-компонентов. При secrets.create: true (Wizard) чарты создают их автоматически. При ручной установке — создайте вручную до установки продуктовых сервисов:
| Secret | Ключи | Кто создаёт | Нужен для |
|---|---|---|---|
postgres-auth |
POSTGRES_PASSWORD |
postgres-чарт | все сервисы с БД |
redis-auth |
REDIS_PASSWORD |
redis-чарт | сервисы с Redis |
minio-auth |
MINIO_ROOT_USER, MINIO_ROOT_PASSWORD |
minio-чарт | сервисы с S3 |
keycloak-auth |
KEYCLOAK_ADMIN_PASSWORD, AUTH_SERVICE_CLIENT_SECRET, ENVOY_GATEWAY_CLIENT_SECRET |
keycloak-чарт | auth-service, genai-gateway |
harbor-cr |
.dockerconfigjson |
создаётся вручную | все поды (imagePullSecret) |