iac/apps/issues/d8-ugmk-prod/production-configmap.yaml
2026-10-27 16:51:18 +05:00

154 lines
5.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
# INFRA-3005: в base здесь хардкод workflows-api-service.workflow — такого
# сервиса в УГМК нет (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"
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=587
SMTP_HOST="post.uralmine.com"
EMAIL_FROM="sarex@uralmine.com"
CORS_ALLOW_METHODS = [
"DELETE",
"GET",
"OPTIONS",
"PATCH",
"POST",
"PUT",
]
SAREX_API = os.getenv("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",
}
}