Add message-hub HelmRelease to d8-ugmk-prod: configure Kafka topics, environment variables, and enable Kafka integration in django.
This commit is contained in:
parent
3317bbf5cd
commit
15392f3373
@ -126,9 +126,13 @@ spec:
|
||||
- name: ZITADEL_HOST
|
||||
value:
|
||||
_default: https://sarex-login.uralmine.com
|
||||
# Включено вместе с message-hub: он консьюмер топика message-hub-stage
|
||||
# (SETTINGS_TOPICS в apps/message-hub/d8-ugmk-prod/message-hub.yaml),
|
||||
# а писать в этот топик должен django. Vault-шаблон django-kafka
|
||||
# и KAFKA_SSL_CAFILE уже есть в base — здесь только флаг.
|
||||
- name: SERVER_KAFKA_ENABLED
|
||||
value:
|
||||
_default: "False"
|
||||
_default: "True"
|
||||
- name: KAFKA_TOPICS
|
||||
value:
|
||||
_default: '{"planning": "message-hub-stage", "ams-sync": "ams-sync"}'
|
||||
|
||||
@ -8,3 +8,7 @@ patches:
|
||||
target:
|
||||
kind: Namespace
|
||||
name: message-hub
|
||||
- path: message-hub.yaml
|
||||
target:
|
||||
kind: HelmRelease
|
||||
name: message-hub
|
||||
|
||||
119
apps/message-hub/d8-ugmk-prod/message-hub.yaml
Normal file
119
apps/message-hub/d8-ugmk-prod/message-hub.yaml
Normal file
@ -0,0 +1,119 @@
|
||||
---
|
||||
# Патч 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 -}}
|
||||
Loading…
Reference in New Issue
Block a user