iac/apps/documentations/outbox-relay.CONFIGURATION.md
diamondrigido d318ea3f16 feat: дополнительные поддержка
1. outbox-relay для кафка
2. маршрутизация
2026-10-30 16:46:21 +02:00

4.2 KiB
Raw Permalink Blame History

Конфигурация outbox-relay

outbox-relay (репозиторий outbox-relay, образ outbox-relay) — воркер transactional outbox для cde-api: опрашивает таблицу outbox в БД cde-api и публикует события в Kafka. HelmRelease outbox-relay в ns documentations, Service нет, 1 реплика. Манифест — base/outbox-relay.yaml и одноимённые файлы в ugok/, brusnika-*/, wb/.

Миграции не запускает: таблицу outbox создаёт cde-api (migrations/001_create_outbox.sql из репозитория relay нужно включить в миграции cde-api). БД — общая с documentations (как и у cde-api), поэтому таблица outbox появляется в БД documentations.

Переменные окружения

Префикс OUTBOX_RELAY_, секции через __.

Переменная Значение Комментарий
APP_NAME, APP_VERSION cde-api-outbox-relay, 0.1.0
SOURCE_SERVICE, SOURCE_VERSION cde-api, 0.1.0 значения поля source в envelope событий
LOG_LEVEL info
PG__SSLMODE disable как у cde-api в iac (общий Postgres без TLS)
PG__POOL_MIN / PG__POOL_MAX 1 / 3
PG__TABLE outbox
PG__HOST/PORT/NAME/USER/PASSWORD Vault secrets/data/apps/documentations/postgres (vault-контуры) или литералы + секрет БД контура та же БД, что у cde-api
POLL_INTERVAL / BATCH_SIZE 500ms / 100
MAX_ATTEMPTS / INITIAL_BACKOFF / MAX_BACKOFF 8 / 1s / 5m
SHUTDOWN_TIMEOUT 30s
KAFKA__BROKERS см. таблицу ниже
KAFKA__SECURITY_PROTOCOL SASL_SSL (vault-контуры) / SSL (остальные) включает TLS; SASL включается, если задан SASL_USERNAME
KAFKA__INSECURE_SKIP_VERIFY true сертификат брокера не проверяется, CA не нужен; клиентский сертификат (mTLS) relay не поддерживает
KAFKA__SASL_MECHANISM/USERNAME/PASSWORD Vault secrets/data/kafka/apps/documentations только vault-контуры

В .helm/values.yaml репозитория relay используются KAFKA__HOST/PORT и секрет cde-api-kafka-secret; в iac вместо них — KAFKA__BROKERS и адреса Kafka своего контура.

Kafka по контурам

Контур Brokers Протокол Проверка сертификата Аутентификация
base (sarex-contour, yc-k8s-test, d8-ugmk-prod, uralkal, vad) kafka-kafka-contour.kafka.svc.cluster.local:9092 SASL_SSL не проверяется Vault secrets/data/kafka/apps/documentations
wb wb-prod-kafka-bootstrap.kafka.svc.cluster.local:9093 SSL не проверяется нет (как у pm)
ugok ugok-prod-kafka-bootstrap.kafka.svc.cluster.local:9093 SSL не проверяется нет
brusnika-prod, brusnika-stage brusnika-stage-kafka-bootstrap.kafka.svc.cluster.local:9093 SSL не проверяется нет

Допущения и что нужно проверить

  • Vault: путь secrets/data/kafka/apps/documentations (SCRAM-пользователь с правом писать в топики cde-api) нужно создать, роль documentations — разрешить его чтение.
  • brusnika-prod: адрес Kafka взят из brusnika-stage (так указано в bi/brusnika-prod, у pm в brusnika-prod Kafka не настроена).
  • sarex-contour, yc-k8s-test: адрес kafka-kafka-contour взят у остальных vault-контуров; сверить с infrastructure/kafka/<кластер>.
  • Топики событий (39 штук, список — docs/cde-api-rollout.md, раздел 5) создаёт команда инфраструктуры до запуска relay.