Root cause: apps/*/ugok extended ../base via kustomize patches, but base is vault-native (Vault Agent Injector annotations + serviceAccount + command/args wrapper sourcing /vault/secrets/*). The Vault Agent Injector webhook IS deployed cluster-wide in ugok (infrastructure/vault/ugok), so it actually intercepted these pods — but no per-app Vault roles/secrets were ever provisioned there, so every pod hung in Init. Fix, mirrored from apps/*/wb (which never extends base for these apps): rebuild every affected app as a standalone HelmRelease per service, with no serviceAccount/podAnnotations override and no vault-sourcing wrapper in command/args (dropped entirely, or replaced with the real functional command where base's wrapper did double duty — e.g. celery invocations, pm's `python manage.py migrate`, pdf-markings-amqp's `start-amqp-worker`). Also recreates ConfigMaps that were referenced by name in volumes but never actually captured into the repo (eav, subscriptions, pm, issues, django) — copied verbatim from the cluster dump and verified byte-for-byte against it. Incidental bugs found and fixed along the way: - message-hub was still extending base (missed in an earlier pass). - system-log's patches targeted services.api/services.worker while base uses services.backend for both — would have produced duplicate Deployments per release, one of them permanently vault-broken. - contracts' real container port is 8080, not base's default 8000. - drawings' Service.targetPort (8000) didn't match the real containerPort (8080), breaking routing. - inspections/ugok was missing entirely from this pass. apps/documentations: intentionally left without a redis Deployment even though VALKEY_ADDR now points at one — the cluster dump has no redis in that namespace, so provisioning one is a scope decision, not a bug fix. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
108 lines
4.0 KiB
YAML
108 lines
4.0 KiB
YAML
---
|
||
# Скопировано из живого ConfigMap кластера ugok (namespace subscriptions).
|
||
# Внимание: в CORS_ALLOWED_ORIGINS зашит чужой домен test.sarex.brusnika.tech —
|
||
# копирую буквально как есть, не правлю (та же история, что с образами,
|
||
# в которых встречались чужие имена клиентов).
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: django-configmap
|
||
namespace: subscriptions
|
||
data:
|
||
production.py: |
|
||
import os
|
||
|
||
from .base import *
|
||
|
||
# DEBUG SETTINGS START
|
||
# -----------------------------------------------------------------------------
|
||
DEBUG = False
|
||
# -----------------------------------------------------------------------------
|
||
# DEBUG SETTINGS END
|
||
|
||
|
||
# ALLOWED HOSTS START
|
||
# -----------------------------------------------------------------------------
|
||
ALLOWED_HOSTS = ["*"]
|
||
# -----------------------------------------------------------------------------
|
||
# ALLOWED HOSTS END
|
||
|
||
# DATABASE CONFIGURATION START
|
||
# ------------------------------------------------------------------------------
|
||
POSTGRES_DATABASE = os.getenv("DATABASE_NAME")
|
||
POSTGRES_USER = os.getenv("DATABASE_USER")
|
||
POSTGRES_PASSWORD = os.getenv("DATABASE_PASSWORD")
|
||
POSTGRES_HOST = os.getenv("DATABASE_HOST")
|
||
POSTGRES_PORT = os.getenv("DATABASE_PORT")
|
||
|
||
DATABASES = {
|
||
"default": {
|
||
"ENGINE": "core.db.backends.postgis",
|
||
"NAME": POSTGRES_DATABASE,
|
||
"USER": POSTGRES_USER,
|
||
"PASSWORD": POSTGRES_PASSWORD,
|
||
"HOST": POSTGRES_HOST,
|
||
"PORT": POSTGRES_PORT,
|
||
}
|
||
}
|
||
# DATABASE CONFIGURATION END
|
||
# ------------------------------------------------------------------------------
|
||
|
||
|
||
CORS_ALLOWED_ORIGINS = [
|
||
"https://localhost.8000",
|
||
"https://localhost.8080",
|
||
"https://test.sarex.brusnika.tech"
|
||
]
|
||
|
||
CORS_ALLOW_ALL_ORIGINS = True
|
||
|
||
CORS_ALLOW_METHODS = [
|
||
"DELETE",
|
||
"GET",
|
||
"OPTIONS",
|
||
"PATCH",
|
||
"POST",
|
||
"PUT",
|
||
]
|
||
|
||
# MAILGUN START
|
||
# ------------------------------------------------------------------------------
|
||
MAILGUN_BASE_URL = os.getenv("MAILGUN_BASE_URL", default="https://api.mailgun.net/v3/mg.sarex.io")
|
||
MAILGUN_API_KEY = os.getenv("MAILGUN_API_KEY", default="6383b2d1b300a70b3b686fa1d0f684f8-f45b080f-53294ebe")
|
||
IS_MAILGUN_USE = os.getenv("IS_MAILGUN_USE", default=False)
|
||
MAILGUN_EMAIL_FROM = os.getenv("MAILGUN_EMAIL_FROM", default="hello@sarex.io")
|
||
# ------------------------------------------------------------------------------
|
||
# MAILGUN END
|
||
|
||
# SYSTEM_LOG SERVICE SETTINGS START
|
||
# -----------------------------------------------------------------------------
|
||
SYSTEM_LOG_HOST = os.getenv("SYSTEM_LOG_HOST")
|
||
# -----------------------------------------------------------------------------
|
||
# SYSTEM_LOG SERVICE SETTINGS END
|
||
|
||
|
||
# TELEGRAM SETTINGS START
|
||
# -----------------------------------------------------------------------------
|
||
IS_USE_TELEGRAM = os.getenv("IS_USE_TELEGRAM", default=False)
|
||
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN", default="6174421650:AAGEicmX0fvDX2683LXiGweWfn1U9UTQHFY")
|
||
# -----------------------------------------------------------------------------
|
||
# TELEGRAM SETTINGS END
|
||
|
||
# USER SERVICE SETTINGS START
|
||
# -----------------------------------------------------------------------------
|
||
USER_SERVICE_HOST = os.getenv("USER_SERVICE_HOST")
|
||
USER_SERVICE_LOGIN = "hagen013"
|
||
USER_SERVICE_PASSWORD = "zealot096"
|
||
# -----------------------------------------------------------------------------
|
||
# USER SERVICE SETTINGS END
|
||
|
||
|
||
# SMTP
|
||
# -------------------------------------------
|
||
SMTP_EMAIL_HOST = os.getenv("SMTP_EMAIL_HOST", default=None)
|
||
SMTP_EMAIL_PORT = os.getenv("SMTP_EMAIL_PORT", default=None)
|
||
SMTP_EMAIL_FROM = os.getenv("SMTP_EMAIL_FROM", default="hello@sarex.io")
|
||
# -------------------------------------------
|
||
# SMTP
|