- Replace incorrect `WORKFLOWS_HOST` and `WORKFLOWS_URL` references across multiple YAML files to point to `backend-svc.processing.svc.cluster.local`. - Update `DOCUMENTATIONS_URL` to use the accurate service name `backend-api-svc.documentations.svc.cluster.local`. - Adjust `SAREX_API` and related settings for consistency using `https://sarex.uralmine.com`. - Refactor `production-configmap.yaml` to align environment variable overrides and remove obsolete hardcoded values. - Resolve key INFRA-3005 issues to prevent Excel export and notification failures caused by invalid DNS and configuration.
166 lines
7.0 KiB
YAML
166 lines
7.0 KiB
YAML
---
|
||
# ВНИМАНИЕ: 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.uralmine.com"
|
||
|
||
- name: AERO_HOST
|
||
value:
|
||
_default: "https://sarex.uralmine.com"
|
||
|
||
# server-to-server, не публичный хост: по коду issues-backend это
|
||
# базовый URL django (src/api/services.py, src/issues/notifications.py).
|
||
# Фактически значение всё равно берётся из production-configmap,
|
||
# где BASE_AERO_URL зашит на этот же адрес.
|
||
- name: BASE_AERO_URL
|
||
value:
|
||
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||
|
||
- name: BASE_AUTH_URL
|
||
value:
|
||
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||
|
||
# INFRA-3005: namespace workflow в УГМК не существует, processing
|
||
# поставляется как backend-svc в namespace processing
|
||
# (apps/processing/base/api.yaml:74 + d8-ugmk-prod/namespace.yaml).
|
||
# Формат — базовый URL без пути и без слэша на конце: код сам
|
||
# добавляет /internal/v1/... (src/issues/mailing.py:122,
|
||
# src/api/services.py:616).
|
||
- name: WORKFLOWS_HOST
|
||
value:
|
||
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||
|
||
- name: WORKFLOWS_URL
|
||
value:
|
||
_default: "http://backend-svc.processing.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"
|
||
|
||
# Внимание: реально действует значение из production-configmap —
|
||
# там SAREX_API переприсваивается после `from .base import *`.
|
||
# См. apps/issues/d8-ugmk-prod/production-configmap.yaml (INFRA-3005).
|
||
- name: SAREX_API
|
||
value:
|
||
_default: "https://sarex.uralmine.com"
|
||
|
||
# Реальное имя сервиса — backend-api-svc (apps/documentations/base/api.yaml:74).
|
||
# Было documentations-api-svc — такого сервиса нет; не стреляло только
|
||
# потому, что production-configmap перетирает эту переменную хардкодом.
|
||
- name: DOCUMENTATIONS_URL
|
||
value:
|
||
_default: "http://backend-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 -}}
|