--- # ВНИМАНИЕ: envs и args — списки, kustomize заменяет их ЦЕЛИКОМ (JSON merge patch), # поэтому здесь продублирован весь набор из apps/issues/base/backend.yaml. # podAnnotations — map, мержится по ключам. apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: backend namespace: issues spec: values: services: backend: deployment: args: _default: - | set -a [ -f /vault/secrets/issues-db ] && . /vault/secrets/issues-db [ -f /vault/secrets/issues-rabbitmq ] && . /vault/secrets/issues-rabbitmq [ -f /vault/secrets/issues-s3 ] && . /vault/secrets/issues-s3 [ -f /vault/secrets/issues-django-auth ] && . /vault/secrets/issues-django-auth [ -f /vault/secrets/issues-jwt-private ] && export JWT_PRIVATE_KEY="$(cat /vault/secrets/issues-jwt-private)" [ -f /vault/secrets/issues-jwt-public ] && export JWT_PUBLIC_KEY="$(cat /vault/secrets/issues-jwt-public)" [ -f /vault/secrets/issues-kafka ] && . /vault/secrets/issues-kafka set +a exec /src/entrypoint.sh volumes: _default: - name: production-configmap mountPath: _default: /src/config/settings/production.py subPath: _default: production.py readOnly: _default: true configMap: name: _default: production-configmap items: - key: production.py path: _default: production.py - 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 envs: - name: ENVIRONMENT value: _default: "production" - name: AERO_PUBLIC_HOST value: _default: "https://sarex.contour.infra.sarex.tech" - name: AERO_HOST value: _default: "https://sarex.contour.infra.sarex.tech" - name: BASE_AERO_URL value: _default: "https://sarex.contour.infra.sarex.tech" - name: BASE_AUTH_URL value: _default: "http://backend-svc.django.svc.cluster.local:80" - name: WORKFLOWS_HOST value: _default: "http://backend-svc.workflow.svc.cluster.local:80" - name: WORKFLOWS_URL value: _default: "http://backend-svc.workflow.svc.cluster.local:80" - name: RESOURCES_API_HOST value: _default: "http://iam-backend.iam.svc.cluster.local:8000" - name: EAV_HOST value: _default: "http://backend-svc.eav.svc.cluster.local:80" - name: SAREX_API value: _default: "https://sarex.contour.infra.sarex.tech" - name: DOCUMENTATIONS_URL value: _default: "http://documentations-api-svc.documentations.svc.cluster.local:80" - name: DJANGO_SETTINGS_MODULE value: _default: "config.settings.production" - name: API_ADDRESS value: _default: "8000" # Kafka — код (kafka_app/app.py) ждёт KAFKA_HOST единой строкой "host:port", # KAFKA_SSL_CAFILE — путь к файлу (не PEM-текст, в отличие от flows-backend). # Хост/порт/CA — те же проверенные значения, что у message-hub/pm/flows. - name: KAFKA_HOST value: _default: "kafka-kafka-contour.kafka.svc.cluster.local:9092" - name: KAFKA_SSL_CAFILE value: _default: "/usr/local/share/ca-certificates/kafka.crt" # Топики совпадают с тем, что уже провижено на брокере (см. topics # в секрете kafka/apps/pm) и с SETTINGS_TOPICS у message-hub. - name: KAFKA_ISSUES_TOPIC value: _default: "issues_broadcast_prod" - name: KAFKA_EAV_ASSETS_TOPIC value: _default: "assets_broadcast" podAnnotations: _default: vault.hashicorp.com/agent-inject-secret-issues-s3: secrets/data/minio/apps/issues vault.hashicorp.com/agent-inject-template-issues-s3: |- {{- with secret "secrets/data/minio/apps/issues" -}} YC_S3_ACCESS_KEY_ID={{ index .Data.data "access_key" }} YC_S3_SECRET_ACCESS_KEY={{ index .Data.data "secret_key" }} YC_S3_BUCKET_NAME=sarex-issues YC_S3_ENDPOINT_URL=https://s3.uralmine.com {{- end -}} vault.hashicorp.com/agent-inject-secret-issues-kafka: secrets/data/kafka/apps/issues vault.hashicorp.com/agent-inject-template-issues-kafka: |- {{- with secret "secrets/data/kafka/apps/issues" -}} KAFKA_USERNAME={{ index .Data.data "username" }} KAFKA_PASSWORD={{ index .Data.data "password" }} {{- end -}}