--- # Патч message-hub для контура УГМК. # # ВНИМАНИЕ: envs — список, kustomize заменяет его ЦЕЛИКОМ (JSON merge patch), # поэтому здесь продублирован весь набор из apps/message-hub/base/message-hub.yaml. # podAnnotations — map, мержится по ключам, поэтому переопределён только # agent-inject-template-message-hub-kafka; остальные берутся из base. apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: message-hub namespace: message-hub spec: values: services: backend: # base: production_24425472 от 15.02.2026 — 18 production-релизов назад. # Здесь актуальный production от 31.07.2026. image: name: _default: cr.yandex/crp3ccidau046kdj8g9q/message-hub:production_e8010fe4 envs: - name: WORKER_TIMEOUT value: _default: "60" - name: PYTHONPATH value: _default: "src" - name: SETTINGS_MAX_RETRIES value: _default: "1" # base: '{"planning": "pm", "assets": "assets_broadcast", "project_entity": "issues_broadcast"}' # Два исправления: # 1. ключ project_entity невалиден — TopicsType (src/enums.py) знает только # assets / planning / issues / resources_updated / resources_deleted, # на прочих валидатор check_topics_keys кидает ValueError при старте. # Консьюмер лежит в project_entity.py, но подписан на TopicsType.issues. # 2. planning был "pm", а django публикует в "message-hub-stage" # (KAFKA_TOPICS, apps/django/d8-ugmk-prod/backend.yaml) — продюсер # и консьюмер сидели на разных топиках. - name: SETTINGS_TOPICS value: _default: '{"planning": "message-hub-stage", "assets": "assets_broadcast", "issues": "issues_broadcast"}' # В base нет, дефолт True. S3 контура (s3.uralmine.com) отдаёт # самоподписанный сертификат — тот же случай, что S3_VERIFY=False у pm. # Флаг общий: гасит проверку TLS сразу и для S3, и для всех HTTP-клиентов. - name: SETTINGS_VERIFY_SSL value: _default: "0" # base: http://backend-service.pm.svc.cluster.local:8000 — сервис pm # называется backend-svc (apps/pm/base/backend.yaml:91). - name: SAREX_BASE_HOST value: _default: "http://backend-svc.pm.svc.cluster.local:8000" # В base нет. Без него ServiceConfig с префиксом PM_ уходит # в дефолт http://localhost:8001. В dsinv и brusnika задан. - name: PM_HOST value: _default: "http://backend-svc.pm.svc.cluster.local:8000" # Имена сверены с infrastructure/istio-config/d8-ugmk-prod/istio-config.yaml. - name: EAV_HOST value: _default: "http://backend-svc.eav.svc.cluster.local:80" - name: ISSUES_HOST value: _default: "http://backend-svc.issues.svc.cluster.local:80" - name: CACHE_HOST value: _default: "redis.pm.svc.cluster.local" - name: CACHE_PORT value: _default: "6379" - name: CACHE_SSL value: _default: "0" # ВНИМАНИЕ: значение не подтверждено. В base было захардкожено # kafka-kafka-contour-controller-headless — имя из другого контура, # здесь HelmRelease называется kafka (infrastructure/kafka/d8-ugmk-prod). # Проверить: kubectl -n kafka get svc # Задано переменной, а не vault-шаблоном, специально: ошибка в шаблоне # блокирует старт пода (agent-init-first), ошибка в env — только логи. - name: KAFKA_HOST value: _default: "kafka-controller-headless.kafka.svc.cluster.local" - name: KAFKA_PORT value: _default: "9092" # listeners.client.protocol: SASL_SSL — без CA соединение не поднимется. - name: KAFKA_SSL_CAFILE value: _default: "/usr/local/share/ca-certificates/kafka.crt" podAnnotations: _default: # Из base убраны KAFKA_HOST/KAFKA_PORT: файл /vault/secrets/message-hub-kafka # подгружается через `set -a; . file`, то есть переписывает переменные # окружения. Пока хост не подтверждён, держим его в envs. vault.hashicorp.com/agent-inject-template-message-hub-kafka: |- {{- with secret "secrets/data/kafka/apps/message-hub" -}} KAFKA_USERNAME={{ index .Data.data "username" }} KAFKA_PASSWORD={{ index .Data.data "password" }} KAFKA_SECURITY_PROTOCOL={{ index .Data.data.auth "security_protocol" }} KAFKA_SASL_MECHANISM={{ index .Data.data.auth "sasl_mechanism" }} {{- end -}}