**Update d8-ugmk-prod configuration: replace SAREX_API and related endpoints with sarex.uralmine.com and adjust production ConfigMap.**
This commit is contained in:
parent
c656984f3a
commit
709985b4a6
@ -64,15 +64,19 @@ spec:
|
|||||||
|
|
||||||
- name: AERO_PUBLIC_HOST
|
- name: AERO_PUBLIC_HOST
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
- name: AERO_HOST
|
- name: AERO_HOST
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_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
|
- name: BASE_AERO_URL
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: BASE_AUTH_URL
|
- name: BASE_AUTH_URL
|
||||||
value:
|
value:
|
||||||
@ -94,9 +98,12 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
_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
|
- name: SAREX_API
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
- name: DOCUMENTATIONS_URL
|
- name: DOCUMENTATIONS_URL
|
||||||
value:
|
value:
|
||||||
|
|||||||
@ -62,17 +62,21 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "production"
|
_default: "production"
|
||||||
|
|
||||||
|
# AERO_PUBLIC_HOST участвует в сборке ссылок в уведомлениях
|
||||||
|
# (src/issues/notifications.py:324) — с чужим хостом в письмах УГМК
|
||||||
|
# уходили ссылки на srx.wb.ru.
|
||||||
- name: AERO_PUBLIC_HOST
|
- name: AERO_PUBLIC_HOST
|
||||||
value:
|
value:
|
||||||
_default: "https://srx.wb.ru"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
- name: AERO_HOST
|
- name: AERO_HOST
|
||||||
value:
|
value:
|
||||||
_default: "https://srx.wb.ru"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
|
# server-to-server — внутренний django, см. backend-s3.yaml.
|
||||||
- name: BASE_AERO_URL
|
- name: BASE_AERO_URL
|
||||||
value:
|
value:
|
||||||
_default: "https://srx.wb.ru"
|
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: BASE_AUTH_URL
|
- name: BASE_AUTH_URL
|
||||||
value:
|
value:
|
||||||
@ -94,9 +98,10 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
||||||
|
|
||||||
|
# Реально действует значение из production-configmap, см. там.
|
||||||
- name: SAREX_API
|
- name: SAREX_API
|
||||||
value:
|
value:
|
||||||
_default: "https://srx.wb.ru"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
- name: DOCUMENTATIONS_URL
|
- name: DOCUMENTATIONS_URL
|
||||||
value:
|
value:
|
||||||
|
|||||||
@ -138,15 +138,16 @@ spec:
|
|||||||
|
|
||||||
- name: AERO_PUBLIC_HOST
|
- name: AERO_PUBLIC_HOST
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
- name: AERO_HOST
|
- name: AERO_HOST
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
|
# server-to-server — внутренний django, см. backend-s3.yaml.
|
||||||
- name: BASE_AERO_URL
|
- name: BASE_AERO_URL
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "http://backend-svc.django.svc.cluster.local:80"
|
||||||
|
|
||||||
- name: BASE_AUTH_URL
|
- name: BASE_AUTH_URL
|
||||||
value:
|
value:
|
||||||
@ -168,9 +169,10 @@ spec:
|
|||||||
value:
|
value:
|
||||||
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
_default: "http://backend-svc.eav.svc.cluster.local:80"
|
||||||
|
|
||||||
|
# Реально действует значение из production-configmap, см. там.
|
||||||
- name: SAREX_API
|
- name: SAREX_API
|
||||||
value:
|
value:
|
||||||
_default: "https://sarex.contour.infra.sarex.tech"
|
_default: "https://sarex.uralmine.com"
|
||||||
|
|
||||||
- name: DOCUMENTATIONS_URL
|
- name: DOCUMENTATIONS_URL
|
||||||
value:
|
value:
|
||||||
|
|||||||
@ -18,3 +18,7 @@ patches:
|
|||||||
target:
|
target:
|
||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
name: celery
|
name: celery
|
||||||
|
- path: production-configmap.yaml
|
||||||
|
target:
|
||||||
|
kind: ConfigMap
|
||||||
|
name: production-configmap
|
||||||
|
|||||||
171
apps/issues/d8-ugmk-prod/production-configmap.yaml
Normal file
171
apps/issues/d8-ugmk-prod/production-configmap.yaml
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
---
|
||||||
|
# ВНИМАНИЕ: data["production.py"] — одна строка, kustomize заменяет её ЦЕЛИКОМ,
|
||||||
|
# поэтому здесь продублировано всё содержимое из
|
||||||
|
# apps/issues/base/production-configmap.yaml (та же ловушка, что с envs).
|
||||||
|
#
|
||||||
|
# Зачем нужен этот патч (INFRA-3005):
|
||||||
|
# в base зашит хардкодом SAREX_API = "https://srx.wb.ru". production.py делает
|
||||||
|
# `from .base import *`, а затем переприсваивает значения — поэтому ConfigMap
|
||||||
|
# ПОБЕЖДАЕТ env-переменные из HelmRelease, и правка SAREX_API в оверлее
|
||||||
|
# backend-s3.yaml/celery-s3.yaml сама по себе ни на что не влияет.
|
||||||
|
#
|
||||||
|
# В issues-backend settings.SAREX_API используется в блокирующих вызовах:
|
||||||
|
# - src/issues/models.py:270 Issue.get_user_data() — requests.get БЕЗ timeout
|
||||||
|
# - src/api/services.py:149 get_session() — httpx.Client(timeout=600)
|
||||||
|
# → get_fresh_token() → синхронный экспорт в Excel
|
||||||
|
# (src/api/export/data_collector.py:285)
|
||||||
|
# Из закрытого контура УГМК srx.wb.ru недоступен, поэтому синхронный экспорт
|
||||||
|
# замечаний в Excel (≤800 замечаний без вложений, см. export.py:47) висел
|
||||||
|
# до таймаута 600 с.
|
||||||
|
#
|
||||||
|
# Отличия от base:
|
||||||
|
# - SAREX_API → https://sarex.uralmine.com
|
||||||
|
# - CORS/CSRF origins → https://sarex.uralmine.com (в base только lk.srx.wb.ru)
|
||||||
|
# - убраны хардкоды KAFKA_USERNAME/KAFKA_PASSWORD/DJANGO_TOKEN и чужой
|
||||||
|
# дефолт KAFKA_HOST: в УГМК всё это приходит из Vault
|
||||||
|
# (см. podAnnotations в backend-s3.yaml / celery-s3.yaml / kafka-app.yaml)
|
||||||
|
# - BASE_AERO_URL оставлен внутренним — он server-to-server
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: production-configmap
|
||||||
|
namespace: issues
|
||||||
|
data:
|
||||||
|
production.py: |
|
||||||
|
from datetime import timedelta
|
||||||
|
import os
|
||||||
|
from .base import *
|
||||||
|
|
||||||
|
# DEBUG SETTINGS START
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
DEBUG = True
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TEST_MODE = False
|
||||||
|
|
||||||
|
# SECRETS SETTINGS START
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
SECRET_KEY = "FromToMuchLoveOfLiving" # Delete after Test
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DJANGO_TOKEN = os.getenv("DJANGO_TOKEN")
|
||||||
|
|
||||||
|
# ALLOWED HOSTS START
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
ALLOWED_HOSTS = ["*"]
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# APPS SETTINGS START
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# INSTALLED_APPS += [
|
||||||
|
# "django_extensions",
|
||||||
|
# ]
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# DEBUG SETTINGS START
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
DEBUG = False
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
REVIEW_HOST='http://backend-svc.flows.svc.cluster.local:80'
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# EXTERNAL SERVICES END
|
||||||
|
|
||||||
|
WORKFLOWS_HOST = "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
||||||
|
WORKFLOWS_URL = "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
||||||
|
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")
|
||||||
|
KAFKA_HOST = os.getenv("KAFKA_HOST")
|
||||||
|
KAFKA_USERNAME = os.getenv("KAFKA_USERNAME")
|
||||||
|
KAFKA_PASSWORD = os.getenv("KAFKA_PASSWORD")
|
||||||
|
KAFKA_SSL_CAFILE = os.getenv("KAFKA_SSL_CAFILE", "/usr/local/share/ca-certificates/kafka.crt")
|
||||||
|
KAFKA_EAV_ASSETS_TOPIC = os.getenv("KAFKA_EAV_ASSETS_TOPIC", "sarex")
|
||||||
|
KAFKA_ISSUES_TOPIC = os.getenv("KAFKA_ISSUES_TOPIC", "sarex-issues")
|
||||||
|
|
||||||
|
|
||||||
|
USE_ASYNC_FUNCTIONS = True
|
||||||
|
USE_NOTIFICATIONS = True
|
||||||
|
|
||||||
|
# JWT SETTINGS START
|
||||||
|
if not os.environ.get("JWT_PRIVATE_KEY"):
|
||||||
|
os.environ["JWT_PRIVATE_KEY"] = _read_secret_file("/vault/secrets/django-jwt-private")
|
||||||
|
if not os.environ.get("JWT_PUBLIC_KEY"):
|
||||||
|
os.environ["JWT_PUBLIC_KEY"] = _read_secret_file("/vault/secrets/django-jwt-public")
|
||||||
|
# ---------------------------------------------------------------------------------------------------------------------
|
||||||
|
SIMPLE_JWT_ISSUER = os.getenv("SIMPLE_JWT_ISSUER", default="default_issuer")
|
||||||
|
|
||||||
|
SIMPLE_JWT = {
|
||||||
|
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=5),
|
||||||
|
"REFRESH_TOKEN_LIFETIME": timedelta(days=1),
|
||||||
|
"ROTATE_REFRESH_TOKENS": False,
|
||||||
|
"UPDATE_LAST_LOGIN": False,
|
||||||
|
|
||||||
|
"ALGORITHM": "RS512",
|
||||||
|
"SIGNING_KEY": os.getenv("JWT_PRIVATE_KEY", default="").replace("\\n", "\n"),
|
||||||
|
"VERIFYING_KEY": os.getenv("JWT_PUBLIC_KEY").replace("\\n", "\n"),
|
||||||
|
"AUDIENCE": None,
|
||||||
|
"ISSUER": SIMPLE_JWT_ISSUER,
|
||||||
|
|
||||||
|
"AUTH_HEADER_TYPES": ("Bearer",),
|
||||||
|
"AUTH_HEADER_NAME": "HTTP_AUTHORIZATION",
|
||||||
|
"USER_ID_FIELD": "id",
|
||||||
|
"USER_ID_CLAIM": "user_id",
|
||||||
|
|
||||||
|
"AUTH_TOKEN_CLASSES": ("rest_framework_simplejwt.tokens.AccessToken",),
|
||||||
|
"TOKEN_TYPE_CLAIM": "token_type",
|
||||||
|
|
||||||
|
"JTI_CLAIM": "jti",
|
||||||
|
|
||||||
|
"SLIDING_TOKEN_REFRESH_EXP_CLAIM": "refresh_exp",
|
||||||
|
"SLIDING_TOKEN_LIFETIME": timedelta(minutes=5),
|
||||||
|
"SLIDING_TOKEN_REFRESH_LIFETIME": timedelta(days=1),
|
||||||
|
}
|
||||||
|
# ---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
CORS_ALLOWED_ORIGINS = [
|
||||||
|
"https://sarex.uralmine.com",
|
||||||
|
]
|
||||||
|
|
||||||
|
CORS_TRUSTED_ORIGINS = [
|
||||||
|
"https://sarex.uralmine.com",
|
||||||
|
]
|
||||||
|
|
||||||
|
CSRF_TRUSTED_ORIGINS = [
|
||||||
|
"https://sarex.uralmine.com",
|
||||||
|
]
|
||||||
|
|
||||||
|
CORS_ALLOW_ALL_ORIGINS = True
|
||||||
|
ENABLE_MAILGUN=False
|
||||||
|
SMTP_PORT=465
|
||||||
|
SMTP_HOST="mail.rwb.ru"
|
||||||
|
EMAIL_FROM="sarex@rwb.ru"
|
||||||
|
|
||||||
|
CORS_ALLOW_METHODS = [
|
||||||
|
"DELETE",
|
||||||
|
"GET",
|
||||||
|
"OPTIONS",
|
||||||
|
"PATCH",
|
||||||
|
"POST",
|
||||||
|
"PUT",
|
||||||
|
]
|
||||||
|
|
||||||
|
SAREX_API = "https://sarex.uralmine.com"
|
||||||
|
|
||||||
|
AERO_PUBLIC_HOST = os.getenv("AERO_PUBLIC_HOST", default=SAREX_API)
|
||||||
|
|
||||||
|
BASE_AERO_URL = "http://backend-svc.django.svc.cluster.local:80"
|
||||||
|
|
||||||
|
ENVIRONMENT = "production"
|
||||||
|
|
||||||
|
SESSION_COOKIE_NAME = "issues-sessionid"
|
||||||
|
CSRF_COOKIE_NAME = "issues-csrftoken"
|
||||||
|
STATIC_URL = "/static/"
|
||||||
|
STORAGES = {
|
||||||
|
'default': {
|
||||||
|
'BACKEND': "storages.backends.s3boto3.S3Boto3Storage",
|
||||||
|
},
|
||||||
|
'staticfiles': {
|
||||||
|
# Leave whatever setting you already have here, e.g.:
|
||||||
|
'BACKEND': "storages.backends.s3boto3.S3Boto3Storage",
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user