apps/<app>/uralkal mirrors apps/<app>/vad for all 36 apps from clusters/vad/kustomization.yaml, with domains remapped (not a suffix swap — vad's sarex-login.vadroad.ru etc. use a different host scheme than uralkal's login.sarex.local.uralkali.com). Two things are left as explicit placeholders pending real infra: the Zitadel client_id/org_id (TBD_URALKAL_ZITADEL_CLIENT_ID, since uralkal's Zitadel has no application registered yet) and the Kafka CA cert in pm/issues/message-hub/flows (copied from vad, will need swapping once uralkal's Kafka actually generates its own CA, same as vad's history). infrastructure/s3-proxy/uralkal: new component, nginx upstream points at the single uralkal minio endpoint (10.133.0.245:9000) from terraform, unlike vad's 4-node list. clusters/uralkal/kustomization.yaml: wires in s3-proxy + all 36 apps. infrastructure/istio-config/uralkal/istio-config.yaml: adds the 28 path-routed virtualServices under sarex.local.uralkali.com (mirroring vad's sarex.vadroad.ru routing, incl. the documentations-api CORS policy) plus stamp-verification/document-link/s3 on their already-declared hosts. Pre-existing zitadel/superset/camunda-operate blocks are untouched. apps/django/vad/backend.yaml: drop a stale explanatory comment (also removed from the uralkal copy before this commit). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
150 lines
5.6 KiB
YAML
150 lines
5.6 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.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=issues
|
||
YC_S3_ENDPOINT_URL=http://s3-proxy.s3-proxy.svc.cluster.local
|
||
{{- 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 -}}
|