genai-gateway¶
Envoy Gateway — ingress-контроллер платформы. Управляет всеми входящими HTTP-маршрутами к продуктовым сервисам. При auth=true добавляет OIDC SecurityPolicy (аутентификация через Keycloak).
Назначение¶
Создаёт GatewayClass + Gateway + HTTPRoute для каждого продуктового сервиса. При auth.enabled: true добавляет Envoy SecurityPolicy с OIDC, JWT-валидацией и cookie-сессией. Браузер обращается к единой точке входа — IP Gateway.
Зависимости¶
Входящие¶
| Источник | Протокол |
|---|---|
| Браузер | HTTPS/HTTP → HTTPRoute → UI |
| Внешние клиенты | HTTPS/HTTP → HTTPRoute → API |
Исходящие (routing к)¶
Все продуктовые сервисы: ui, ui-gateway, orchestrator, jailbreak-api, asr-api, cv-api, model-mgmt, scan-profile, results, auth-service, license-service, minio (console).
При auth=true также: keycloak (OIDC issuer).
Values¶
| Параметр | По умолчанию | Обязателен | Описание |
|---|---|---|---|
global.domain |
— | да | Базовый домен |
global.publicScheme |
"http" |
нет | https при TLS |
global.auth.enabled |
false |
нет | Включить OIDC SecurityPolicy |
global.tls.secretName |
— | при https |
Wildcard TLS Secret для *.<domain> |
global.instance |
"" |
нет | Суффикс для мультиинсталляций |
global.deps.keycloak.host |
keycloak |
нет | Хост Keycloak |
global.deps.keycloak.port |
8080 |
нет | Порт Keycloak |
gateway.className |
"genai-class" |
да | Имя GatewayClass (уникален в кластере) |
gateway.name |
"genai" |
нет | Имя Gateway-ресурса |
gateway.managed |
true |
нет | false = routes-only к существующему Gateway |
gateway.listeners.https.enabled |
false |
нет | Включить HTTPS listener |
proxy.name |
"envoy" |
нет | Имя EnvoyProxy |
proxy.externalIPs |
[] |
нет | Bare-metal: ["10.0.0.1"]; cloud: [] |
policies.security.enabled |
false |
нет | Включить OIDC SecurityPolicy |
policies.security.oidc.clientSecretRef.name |
"keycloak-auth" |
при auth=true |
Secret с ENVOY_GATEWAY_CLIENT_SECRET |
Пример values.yaml¶
# values-genai-gateway.yaml
global:
domain: "app.example.com"
publicScheme: "https"
auth:
enabled: true
tls:
secretName: "genai-tls"
deps:
keycloak:
host: keycloak
port: 8080
gateway:
className: "genai-class"
name: "genai"
managed: true
listeners:
https:
enabled: true
proxy:
name: "envoy"
externalIPs: []
policies:
security:
enabled: true
oidc:
clientSecretRef:
name: "keycloak-auth"
Установка¶
helm upgrade --install genai-gateway \
oci://registry.appsec.global/appsecgenai-release/charts/genai-gateway \
--version <VERSION> -n genai --create-namespace \
-f values-genai-gateway.yaml
Требования Envoy Gateway
При auth.enabled: true требуется Envoy Gateway controller в кластере. Установить:
TLS Secret до установки
При publicScheme: https создайте Secret до helm install:
DNS записи (при auth=true)¶
После получения IP от LoadBalancer создайте DNS A-записи: