++
This commit is contained in:
parent
e61fb1614f
commit
f2223ceab4
@ -33,39 +33,21 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "1"
|
_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
|
- name: SETTINGS_TOPICS
|
||||||
value:
|
value:
|
||||||
_default: '{"planning": "message-hub-prod", "assets":"assets_broadcast","issues": "issues_broadcast_prod", "resources_updated": "iam.resource.updated.v2", "resources_deleted": "iam.resource.deleted.v2"}'
|
_default: '{"planning": "message-hub-prod", "assets":"assets_broadcast","issues": "issues_broadcast_prod", "resources_updated": "iam.resource.updated.v2", "resources_deleted": "iam.resource.deleted.v2"}'
|
||||||
|
|
||||||
# В base нет, дефолт True. S3 контура (s3.uralmine.com) отдаёт
|
|
||||||
# самоподписанный сертификат — тот же случай, что S3_VERIFY=False у pm.
|
|
||||||
# Флаг общий: гасит проверку TLS сразу и для S3, и для всех HTTP-клиентов.
|
|
||||||
- name: SETTINGS_VERIFY_SSL
|
- name: SETTINGS_VERIFY_SSL
|
||||||
value:
|
value:
|
||||||
_default: "0"
|
_default: "0"
|
||||||
|
|
||||||
# base: http://backend-service.pm.svc.cluster.local:8000 — сервис pm
|
|
||||||
# называется backend-svc (apps/pm/base/backend.yaml:91).
|
|
||||||
- name: SAREX_BASE_HOST
|
- name: SAREX_BASE_HOST
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.pm.svc.cluster.local:8000"
|
_default: "http://backend-svc.pm.svc.cluster.local:8000"
|
||||||
|
|
||||||
# В base нет. Без него ServiceConfig с префиксом PM_ уходит
|
|
||||||
# в дефолт http://localhost:8001. В dsinv и brusnika задан.
|
|
||||||
- name: PM_HOST
|
- name: PM_HOST
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.pm.svc.cluster.local:8000"
|
_default: "http://backend-svc.pm.svc.cluster.local:8000"
|
||||||
|
|
||||||
# Имена сверены с infrastructure/istio-config/d8-ugmk-prod/istio-config.yaml.
|
|
||||||
- name: EAV_HOST
|
- name: EAV_HOST
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
||||||
@ -86,16 +68,6 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "0"
|
_default: "0"
|
||||||
|
|
||||||
# Подтверждено вживую (kubectl exec в kafka-kafka-contour-controller-0,
|
|
||||||
# server.properties): реальный CLIENT-листенер (SASL_SSL) — порт 9092
|
|
||||||
# на обычном (не headless) сервисе kafka-kafka-contour. Порт 9094 —
|
|
||||||
# это INTERNAL (SASL_PLAINTEXT, inter-broker), не для приложений;
|
|
||||||
# 9093 — CONTROLLER (raft, свой API, METADATA не поддерживает).
|
|
||||||
# Сертификат брокера (SAN) покрывает голое имя kafka-kafka-contour,
|
|
||||||
# но НЕ голое имя headless-сервиса (только *.<headless> с одним
|
|
||||||
# префиксом-подом) — поэтому именно обычный сервис, не headless.
|
|
||||||
# Задано переменной, а не vault-шаблоном, специально: ошибка в шаблоне
|
|
||||||
# блокирует старт пода (agent-init-first), ошибка в env — только логи.
|
|
||||||
- name: KAFKA_HOST
|
- name: KAFKA_HOST
|
||||||
value:
|
value:
|
||||||
_default: "kafka-kafka-contour.kafka.svc.cluster.local"
|
_default: "kafka-kafka-contour.kafka.svc.cluster.local"
|
||||||
@ -104,15 +76,9 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "9092"
|
_default: "9092"
|
||||||
|
|
||||||
# listeners.client.protocol: SASL_SSL — без CA соединение не поднимется.
|
|
||||||
- name: KAFKA_SSL_CAFILE
|
- name: KAFKA_SSL_CAFILE
|
||||||
value:
|
value:
|
||||||
_default: "/usr/local/share/ca-certificates/kafka.crt"
|
_default: "/usr/local/share/ca-certificates/kafka.crt"
|
||||||
|
|
||||||
# В секрете pm security_protocol = SASL_PLAINTEXT — верно для того,
|
|
||||||
# как им пользуется сам pm, но реальный листенер (см. выше) требует
|
|
||||||
# SASL_SSL. Фиксируем тут, а не из вольта, чтобы не переписать это
|
|
||||||
# значение обратно на PLAINTEXT — по той же причине, что и KAFKA_HOST/PORT.
|
|
||||||
- name: KAFKA_SECURITY_PROTOCOL
|
- name: KAFKA_SECURITY_PROTOCOL
|
||||||
value:
|
value:
|
||||||
_default: "SASL_SSL"
|
_default: "SASL_SSL"
|
||||||
@ -136,9 +102,6 @@ spec:
|
|||||||
|
|
||||||
podAnnotations:
|
podAnnotations:
|
||||||
_default:
|
_default:
|
||||||
# Из base убраны KAFKA_HOST/KAFKA_PORT/KAFKA_SECURITY_PROTOCOL: файл
|
|
||||||
# /vault/secrets/message-hub-kafka подгружается через `set -a; . file`,
|
|
||||||
# то есть переписывает переменные окружения поверх envs.
|
|
||||||
vault.hashicorp.com/agent-inject-secret-message-hub-kafka: secrets/data/kafka/apps/pm
|
vault.hashicorp.com/agent-inject-secret-message-hub-kafka: secrets/data/kafka/apps/pm
|
||||||
vault.hashicorp.com/agent-inject-template-message-hub-kafka: |-
|
vault.hashicorp.com/agent-inject-template-message-hub-kafka: |-
|
||||||
{{- with secret "secrets/data/kafka/apps/pm" -}}
|
{{- with secret "secrets/data/kafka/apps/pm" -}}
|
||||||
|
|||||||
@ -15,8 +15,6 @@ spec:
|
|||||||
values:
|
values:
|
||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
# base: production_a889f6a3 (релиз 1.14.1, 13.07.2026).
|
|
||||||
# Здесь 1.14.7 — pipeline 72144, зелёный.
|
|
||||||
image:
|
image:
|
||||||
name:
|
name:
|
||||||
_default: cr.yandex/crp3ccidau046kdj8g9q/pm-backend:production_fa0f1551
|
_default: cr.yandex/crp3ccidau046kdj8g9q/pm-backend:production_fa0f1551
|
||||||
@ -29,14 +27,11 @@ spec:
|
|||||||
[ -f /vault/secrets/pm-db ] && . /vault/secrets/pm-db
|
[ -f /vault/secrets/pm-db ] && . /vault/secrets/pm-db
|
||||||
[ -f /vault/secrets/pm-rabbitmq ] && . /vault/secrets/pm-rabbitmq
|
[ -f /vault/secrets/pm-rabbitmq ] && . /vault/secrets/pm-rabbitmq
|
||||||
[ -f /vault/secrets/pm-s3 ] && . /vault/secrets/pm-s3
|
[ -f /vault/secrets/pm-s3 ] && . /vault/secrets/pm-s3
|
||||||
|
[ -f /vault/secrets/pm-kafka ] && . /vault/secrets/pm-kafka
|
||||||
set +a
|
set +a
|
||||||
python manage.py makemigrations pm --noinput
|
python manage.py makemigrations pm --noinput
|
||||||
python manage.py migrate
|
python manage.py migrate
|
||||||
exec /opt/sarex/entrypoint.sh
|
exec /opt/sarex/entrypoint.sh
|
||||||
|
|
||||||
# ВНИМАНИЕ: envs — список, kustomize заменяет его ЦЕЛИКОМ,
|
|
||||||
# поэтому здесь продублирован весь набор из apps/pm/base/backend.yaml.
|
|
||||||
# Отличия от base помечены комментариями.
|
|
||||||
envs:
|
envs:
|
||||||
- name: USERS_INTERNAL_HOST
|
- name: USERS_INTERNAL_HOST
|
||||||
value:
|
value:
|
||||||
@ -123,7 +118,23 @@ spec:
|
|||||||
|
|
||||||
- name: KAFKA_ENABLE
|
- name: KAFKA_ENABLE
|
||||||
value:
|
value:
|
||||||
_default: "False"
|
_default: "True"
|
||||||
|
|
||||||
|
- name: KAFKA_BOOTSTRAP_SERVERS
|
||||||
|
value:
|
||||||
|
_default: '["kafka-kafka-contour.kafka.svc.cluster.local:9092"]'
|
||||||
|
|
||||||
|
- name: KAFKA_SECURITY_PROTOCOL
|
||||||
|
value:
|
||||||
|
_default: "SASL_SSL"
|
||||||
|
|
||||||
|
- name: KAFKA_SSL_CAFILE
|
||||||
|
value:
|
||||||
|
_default: "/usr/local/share/ca-certificates/kafka.crt"
|
||||||
|
|
||||||
|
- name: KAFKA_TOPICS
|
||||||
|
value:
|
||||||
|
_default: '{"planning": "message-hub-prod"}'
|
||||||
|
|
||||||
- name: AUTH_PUBLIC_TOKEN_URL
|
- name: AUTH_PUBLIC_TOKEN_URL
|
||||||
value:
|
value:
|
||||||
@ -157,6 +168,23 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "INFO"
|
_default: "INFO"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
_default:
|
||||||
|
- name: kafka-ca-cert
|
||||||
|
mountPath:
|
||||||
|
_default: /usr/local/share/ca-certificates/kafka.crt
|
||||||
|
subPath:
|
||||||
|
_default: kafka.crt
|
||||||
|
readOnly:
|
||||||
|
_default: true
|
||||||
|
configMap:
|
||||||
|
name:
|
||||||
|
_default: kafka-ca-cert
|
||||||
|
items:
|
||||||
|
- key: kafka.crt
|
||||||
|
path:
|
||||||
|
_default: kafka.crt
|
||||||
|
|
||||||
podAnnotations:
|
podAnnotations:
|
||||||
_default:
|
_default:
|
||||||
vault.hashicorp.com/agent-inject-template-pm-s3: |-
|
vault.hashicorp.com/agent-inject-template-pm-s3: |-
|
||||||
@ -168,3 +196,10 @@ spec:
|
|||||||
{{- $buckets := index .Data.data "buckets" }}
|
{{- $buckets := index .Data.data "buckets" }}
|
||||||
S3_BUCKET={{ if gt (len $buckets) 0 }}{{ index (index $buckets 0) "name" }}{{ else }}sarex-media-storage{{ end }}
|
S3_BUCKET={{ if gt (len $buckets) 0 }}{{ index (index $buckets 0) "name" }}{{ else }}sarex-media-storage{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
vault.hashicorp.com/agent-inject-secret-pm-kafka: secrets/data/kafka/apps/pm
|
||||||
|
vault.hashicorp.com/agent-inject-template-pm-kafka: |-
|
||||||
|
{{- with secret "secrets/data/kafka/apps/pm" -}}
|
||||||
|
KAFKA_SASL_MECHANISM={{ index .Data.data.auth "sasl_mechanism" }}
|
||||||
|
KAFKA_SASL_PLAIN_USERNAME={{ index .Data.data "username" }}
|
||||||
|
KAFKA_SASL_PLAIN_PASSWORD={{ index .Data.data "password" }}
|
||||||
|
{{- end -}}
|
||||||
|
|||||||
27
apps/pm/d8-ugmk-prod/kafka-ca-configmap.yaml
Normal file
27
apps/pm/d8-ugmk-prod/kafka-ca-configmap.yaml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: kafka-ca-cert
|
||||||
|
namespace: pm
|
||||||
|
data:
|
||||||
|
kafka.crt: |
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDETCCAfmgAwIBAgIQI30u4fwgUnGBxyLicuU5EzANBgkqhkiG9w0BAQsFADAT
|
||||||
|
MREwDwYDVQQDEwhrYWZrYS1jYTAeFw0yNjA3MTMxNzQwNDJaFw0yNzA3MTMxNzQw
|
||||||
|
NDJaMBMxETAPBgNVBAMTCGthZmthLWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
||||||
|
MIIBCgKCAQEAudTWG0AwdqIMqbqGwjf9CY0BMMQm+HDPRkzMnXqVCSqAYLBLuPBC
|
||||||
|
h4+qm+IKAIpiJrO5pCDxeU1mVqMgRnXcdYyuefCzlTAKMNuM1CVM4ou695B0zKiy
|
||||||
|
D+7NHsdhuoH/ne3jCa8VpylDfKWsxcq3tDCdtZ5drPK80g2o0eo2LHx4erJtSABV
|
||||||
|
tqCrcIuy1nClAwGY4ejO+psr+gIzrHdYzve6YRRFBqVp6sJHcW1Cj6wOpHax4pcM
|
||||||
|
Srh5EcZ4dk434UNOZy2Ebji/9Lwxn0CiXtPTHYGTgNLhujurylFM1nUx69QgsR3C
|
||||||
|
GRZSY3R8Kegd4bzzhHfoBMQvl5Py+0o85QIDAQABo2EwXzAOBgNVHQ8BAf8EBAMC
|
||||||
|
AqQwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMB
|
||||||
|
Af8wHQYDVR0OBBYEFKhTGCqho/YjUZK1ndypuYs970kcMA0GCSqGSIb3DQEBCwUA
|
||||||
|
A4IBAQBvIzVhkzib6LJxt3tUkDFy87Yf1gG+rRVZiL/ZGrOsQlvBt4eLzZIytAvL
|
||||||
|
QaZHY+imIyzURj57IFfyFM1fEPRhc9et0VaRYxGwapLljez0jqPedM8rCsunJmVP
|
||||||
|
KrQxAfvbmHvcZ8k51tpD+YydmoARjBmoRdRIuLTDsuLv0Szg45M/7I4px2ycGN2j
|
||||||
|
kF7jVwF56u2eIrUGybnsH2qg+MY7devv3rG1Y1YV7HEwMAAeN1n5JLxxuA1AIW/j
|
||||||
|
TyZD8hICp8OLzWGTG9b3GZJK9FXbDHSKXemJr0hyjoxsW27nHsXcmV5Oe2OkTKw8
|
||||||
|
fdA17/ibw6gFrH2b3vZKcx8D455V
|
||||||
|
-----END CERTIFICATE-----
|
||||||
@ -4,6 +4,7 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- ../base
|
- ../base
|
||||||
- redis.yaml
|
- redis.yaml
|
||||||
|
- kafka-ca-configmap.yaml
|
||||||
patches:
|
patches:
|
||||||
- path: namespace.yaml
|
- path: namespace.yaml
|
||||||
target:
|
target:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user