Зафиксированы очередь job, семантика метрик, лимиты бандла и исходящих запросов, а также чеклист продакшена для пула соединений. Co-authored-by: Cursor <[email protected]>
3.2 KiB
3.2 KiB
Production checklist
Краткий чеклист перед выводом EvoBGP в production (10+ клиентов, нестабильная сеть).
Обязательно
EVOBGP_PRODUCTION=1(илиEVOBGP_ENV=production) — при старте API/evobgp-allпроцесс откажется стартовать, если нарушены жёсткие требования ниже (config.ValidateProductionEnforce).EVOBGP_SEED_DEMO=0— отключить demo-tenant и токенBearer dev.EVOBGP_DEV_INSECUREне задавать или0— не использовать lab-флаги в prod.EVOBGP_BUNDLE_SEED_HEX— задать стабильный hex-ключ подписи бандлов; сохранить pubkey для нод.- PostgreSQL с TLS (
sslmodeнеdisable) при доступе вне private network. EVOBGP_CORS_ORIGINS— явный whitelist origin веб-панели.EVOBGP_STALE_ON_UPSTREAM_ERROR=1(по умолчанию) — stale snapshot при сбоях CDN/ASN/DoH.- Опционально
EVOBGP_CDN_PARTIAL_OK=1— при сбое одного CDN source без stale cache продолжать refresh остальных (иначе fail модуля). EVOBGP_ASN_HOLDER_TTL_SEC— TTL имени holder AS (default 7 суток); prefixes кэшируются отдельно (EVOBGP_ASN_CACHE_TTL_SEC, default 1800).EVOBGP_CDN_DNS_CACHE_TTL_SEC— TTL кэша DNS при SSRF-проверке CDN URL (default 300).EVOBGP_DOMAIN_CACHE_TTL_SEC— TTL кэша DoH A/AAAA (domain_resolve_cache, default 300).
Рекомендуется
- `EVOBGP_JOB_MAX_CONCURRENT=16`, `EVOBGP_DB_MAX_CONNS=25`, `EVOBGP_COLLECT_CONCURRENCY=16` при росте tenants. Если `EVOBGP_DB_MAX_CONNS` не задан, пул по умолчанию 8 соединений и `MaxConnIdleTime` 5 минут (не дефолт pgx в 4). Явное значение переменной не переопределяется. Сумма пулов процессов reference-профиля должна оставаться ниже `max_connections`.
EVOBGP_NODE_DISPATCH_INSECURE_TLS=0— только валидный TLS к agent.- Ограничить
/metrics:EVOBGP_METRICS_TOKEN(Bearer) и/или сетевая политика / reverse proxy. EVOBGP_AUTH_RATE_LIMIT(default 60/min per IP) наGET /v1/auth/config.HTTP_PROXY/HTTPS_PROXY/NO_PROXYдля CDN/DoH в censored сетях.- Опционально
EVOBGP_OTEL_ENDPOINT(stub opt-in для будущего OTel export). - Профиль
evobgp-allили HA API + персистентнаяjob_audit(PostgreSQL SKIP LOCKED reclaim). - E2E smoke:
pnpm --filter @evobgp/web run test:e2eпротив API (EVOBGP_E2E_API_URL) / UI (EVOBGP_E2E_UI=1). - Мониторинг drift:
evobgp-deploy,last_applied_revision_idvs published.
Не использовать в prod
EVOBGP_CDN_ALLOW_PRIVATE=1— только тесты/lab.- Plaintext
EVOBGP_API_KEYSбез ротации (break-glass — временно). - Ручное редактирование
evobgp_*.confна нодах без ревизии.