**Update d8-ugmk-prod configurations to fix service references and ensure proper workflow and API integration**
- 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.
This commit is contained in:
parent
709985b4a6
commit
f22d5cc773
@ -82,13 +82,19 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.django.svc.cluster.local:80"
|
_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
|
- name: WORKFLOWS_HOST
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.workflow.svc.cluster.local:80"
|
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: WORKFLOWS_URL
|
- name: WORKFLOWS_URL
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.workflow.svc.cluster.local:80"
|
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: RESOURCES_API_HOST
|
- name: RESOURCES_API_HOST
|
||||||
value:
|
value:
|
||||||
@ -105,9 +111,12 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "https://sarex.uralmine.com"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
|
# Реальное имя сервиса — backend-api-svc (apps/documentations/base/api.yaml:74).
|
||||||
|
# Было documentations-api-svc — такого сервиса нет; не стреляло только
|
||||||
|
# потому, что production-configmap перетирает эту переменную хардкодом.
|
||||||
- name: DOCUMENTATIONS_URL
|
- name: DOCUMENTATIONS_URL
|
||||||
value:
|
value:
|
||||||
_default: "http://documentations-api-svc.documentations.svc.cluster.local:80"
|
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: DJANGO_SETTINGS_MODULE
|
- name: DJANGO_SETTINGS_MODULE
|
||||||
value:
|
value:
|
||||||
|
|||||||
@ -82,13 +82,15 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.django.svc.cluster.local:80"
|
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||||||
|
|
||||||
|
# INFRA-3005: именно этот хост ронял celery-задачу экспорта в Excel
|
||||||
|
# и все уведомления. См. backend-s3.yaml и production-configmap.yaml.
|
||||||
- name: WORKFLOWS_HOST
|
- name: WORKFLOWS_HOST
|
||||||
value:
|
value:
|
||||||
_default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: WORKFLOWS_URL
|
- name: WORKFLOWS_URL
|
||||||
value:
|
value:
|
||||||
_default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: RESOURCES_API_HOST
|
- name: RESOURCES_API_HOST
|
||||||
value:
|
value:
|
||||||
|
|||||||
@ -153,13 +153,14 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.django.svc.cluster.local:80"
|
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||||||
|
|
||||||
|
# INFRA-3005: см. backend-s3.yaml и production-configmap.yaml.
|
||||||
- name: WORKFLOWS_HOST
|
- name: WORKFLOWS_HOST
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.workflow.svc.cluster.local:80"
|
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: WORKFLOWS_URL
|
- name: WORKFLOWS_URL
|
||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.workflow.svc.cluster.local:80"
|
_default: "http://backend-svc.processing.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: RESOURCES_API_HOST
|
- name: RESOURCES_API_HOST
|
||||||
value:
|
value:
|
||||||
@ -174,9 +175,10 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "https://sarex.uralmine.com"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
|
# Реальное имя сервиса — backend-api-svc, см. backend-s3.yaml.
|
||||||
- name: DOCUMENTATIONS_URL
|
- name: DOCUMENTATIONS_URL
|
||||||
value:
|
value:
|
||||||
_default: "http://documentations-api-svc.documentations.svc.cluster.local:80"
|
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: DJANGO_SETTINGS_MODULE
|
- name: DJANGO_SETTINGS_MODULE
|
||||||
value:
|
value:
|
||||||
|
|||||||
@ -3,23 +3,26 @@
|
|||||||
# поэтому здесь продублировано всё содержимое из
|
# поэтому здесь продублировано всё содержимое из
|
||||||
# apps/issues/base/production-configmap.yaml (та же ловушка, что с envs).
|
# apps/issues/base/production-configmap.yaml (та же ловушка, что с envs).
|
||||||
#
|
#
|
||||||
# Зачем нужен этот патч (INFRA-3005):
|
# Зачем нужен этот патч:
|
||||||
# в base зашит хардкодом SAREX_API = "https://srx.wb.ru". production.py делает
|
# production.py делает `from .base import *` (там всё через os.getenv), а затем
|
||||||
# `from .base import *`, а затем переприсваивает значения — поэтому ConfigMap
|
# переприсваивает часть значений ХАРДКОДОМ — поэтому для этих переменных
|
||||||
# ПОБЕЖДАЕТ env-переменные из HelmRelease, и правка SAREX_API в оверлее
|
# ConfigMap ПОБЕЖДАЕТ env из HelmRelease, и правка env в оверлее
|
||||||
# backend-s3.yaml/celery-s3.yaml сама по себе ни на что не влияет.
|
# backend-s3.yaml/celery-s3.yaml сама по себе ни на что не влияет.
|
||||||
#
|
#
|
||||||
# В issues-backend settings.SAREX_API используется в блокирующих вызовах:
|
# INFRA-3005 (основная причина зависания экспорта в Excel):
|
||||||
# - src/issues/models.py:270 Issue.get_user_data() — requests.get БЕЗ timeout
|
# в base хардкодом WORKFLOWS_HOST/WORKFLOWS_URL = workflows-api-service.workflow
|
||||||
# - src/api/services.py:149 get_session() — httpx.Client(timeout=600)
|
# — такого сервиса в УГМК нет. celery собирает xlsx, затем
|
||||||
# → get_fresh_token() → синхронный экспорт в Excel
|
# ExportFinishedNotification → issues/mailing.py:122 делает POST на
|
||||||
# (src/api/export/data_collector.py:285)
|
# {WORKFLOWS_HOST}/internal/v1/companies/{id}/workflows и падает с
|
||||||
# Из закрытого контура УГМК srx.wb.ru недоступен, поэтому синхронный экспорт
|
# ConnectionError (Name or service not known) — задача фейлится, фронт не
|
||||||
# замечаний в Excel (≤800 замечаний без вложений, см. export.py:47) висел
|
# получает завершения и крутит загрузку бесконечно. Тем же путём с 26.08
|
||||||
# до таймаута 600 с.
|
# падали ВСЕ уведомления (send_notification_on_create/on_update/
|
||||||
|
# to_new_responsible/on_bulk_update, ~1770 ошибок).
|
||||||
#
|
#
|
||||||
# Отличия от base:
|
# Отличия от base:
|
||||||
# - SAREX_API → https://sarex.uralmine.com
|
# - WORKFLOWS_HOST / WORKFLOWS_URL → backend-svc.processing (через os.getenv,
|
||||||
|
# чтобы env из оверлея снова начал работать)
|
||||||
|
# - SAREX_API → https://sarex.uralmine.com (в base зашит https://srx.wb.ru)
|
||||||
# - CORS/CSRF origins → https://sarex.uralmine.com (в base только lk.srx.wb.ru)
|
# - CORS/CSRF origins → https://sarex.uralmine.com (в base только lk.srx.wb.ru)
|
||||||
# - убраны хардкоды KAFKA_USERNAME/KAFKA_PASSWORD/DJANGO_TOKEN и чужой
|
# - убраны хардкоды KAFKA_USERNAME/KAFKA_PASSWORD/DJANGO_TOKEN и чужой
|
||||||
# дефолт KAFKA_HOST: в УГМК всё это приходит из Vault
|
# дефолт KAFKA_HOST: в УГМК всё это приходит из Vault
|
||||||
@ -71,8 +74,15 @@ data:
|
|||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# EXTERNAL SERVICES END
|
# EXTERNAL SERVICES END
|
||||||
|
|
||||||
WORKFLOWS_HOST = "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
# INFRA-3005: в base здесь хардкод workflows-api-service.workflow — такого
|
||||||
WORKFLOWS_URL = "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
# сервиса в УГМК нет (DNS: "Name or service not known"), из-за чего падал
|
||||||
|
# POST {WORKFLOWS_HOST}/internal/v1/companies/{id}/workflows в
|
||||||
|
# issues/mailing.py:122 (WorkflowsMailer) — а это и рассылка уведомлений,
|
||||||
|
# и финальный шаг celery-задачи экспорта в Excel.
|
||||||
|
# В УГМК workflows (processing) живёт как backend-svc в namespace processing.
|
||||||
|
WORKFLOWS_HOST = os.getenv("WORKFLOWS_HOST", "http://backend-svc.processing.svc.cluster.local:80")
|
||||||
|
WORKFLOWS_URL = os.getenv("WORKFLOWS_URL", "http://backend-svc.processing.svc.cluster.local:80")
|
||||||
|
# backend-api-svc — реальное имя сервиса documentations (base/api.yaml:74).
|
||||||
DOCUMENTATIONS_URL = "http://backend-api-svc.documentations.svc.cluster.local:80"
|
DOCUMENTATIONS_URL = "http://backend-api-svc.documentations.svc.cluster.local:80"
|
||||||
RESOURCES_API_HOST = os.getenv("RESOURCES_API_HOST", default="http://resources-service.resources.svc.cluster:8000")
|
RESOURCES_API_HOST = os.getenv("RESOURCES_API_HOST", default="http://resources-service.resources.svc.cluster:8000")
|
||||||
KAFKA_HOST = os.getenv("KAFKA_HOST")
|
KAFKA_HOST = os.getenv("KAFKA_HOST")
|
||||||
@ -149,7 +159,7 @@ data:
|
|||||||
"PUT",
|
"PUT",
|
||||||
]
|
]
|
||||||
|
|
||||||
SAREX_API = "https://sarex.uralmine.com"
|
SAREX_API = os.getenv("SAREX_API", "https://sarex.uralmine.com")
|
||||||
|
|
||||||
AERO_PUBLIC_HOST = os.getenv("AERO_PUBLIC_HOST", default=SAREX_API)
|
AERO_PUBLIC_HOST = os.getenv("AERO_PUBLIC_HOST", default=SAREX_API)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user