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>
33 lines
1.3 KiB
YAML
33 lines
1.3 KiB
YAML
---
|
|
# Скопировано из живого ConfigMap кластера ugok (namespace pm) — монтируется
|
|
# backend'ом и celery как /opt/sarex/uwsgi.ini.
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: backend-configmap
|
|
namespace: pm
|
|
data:
|
|
uwsgi.ini: |
|
|
[uwsgi]
|
|
log-format = {"time": "%(time)", "method": "%(method)", "uri": "%(uri)", "status": "%(status)", "size": "%(size)", "addr": "%(addr)", "user": "%(user)", "proto": "%(proto)", "user_agent": "%(uagent)", "referer": "%(referer)", "trace_id": "%(trace_id)", "span_id": "%(span_id)"}
|
|
module = config.wsgi:application
|
|
DJANGO_SETTINGS_MODULE = config.settings.base
|
|
http = 0.0.0.0:8000
|
|
processes = 8
|
|
master = true
|
|
vacuum = true
|
|
enable-threads = true
|
|
buffer-size = 65535
|
|
stats = :3031
|
|
stats-http = true
|
|
memory-report = true
|
|
lazy-apps = true
|
|
listen = 1024
|
|
disable-write-exception= 0
|
|
harakiri = 300
|
|
socket-timeout = 300
|
|
chunked-input-timeout = 300
|
|
http-timeout = 300
|
|
worker-reload-mercy = 240
|
|
mule-reload-mercy = 240
|