iac/apps/issues/ugok/backend.yaml
ivan 742a811313 ugok: rebuild all apps as standalone HelmReleases, drop vault-native base
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>
2026-08-29 01:22:21 +05:00

243 lines
6.6 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.

---
# standalone HelmRelease — base vault-native, в ugok Vault не используется.
# volumes дополнены uwsgi-configmap: в base этот volume отсутствует, хотя
# в живом дампе кластера он реально смонтирован в оба контейнера.
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: backend
namespace: issues
spec:
interval: 10m
chart:
spec:
chart: universal-chart
version: "0.1.9"
sourceRef:
kind: HelmRepository
name: yc-oci-charts
namespace: flux-system
interval: 10m
install:
remediation:
retries: 3
upgrade:
remediation:
retries: 3
values:
global:
env: _default
services:
backend:
enabled: true
image:
name:
_default: 10.4.10.187:80/library/issues:production_bbb9d29a
pullPolicy:
_default: IfNotPresent
deployment:
enabled: true
name:
_default: issues
replicaCount:
_default: 1
port:
_default: 8000
resources:
requests:
cpu:
_default: 25m
memory:
_default: 128Mi
probes:
liveness:
enabled: false
readiness:
enabled: false
service:
enabled: true
name:
_default: backend-svc
type:
_default: ClusterIP
port:
_default: 80
targetPort:
_default: 8000
portName:
_default: http
imagePullSecrets:
enabled:
_default: true
name:
_default: regcred
volumes:
_default:
- name: production-configmap
mountPath:
_default: /src/config/settings/production.py
subPath:
_default: production.py
readOnly:
_default: true
configMap:
name:
_default: production-configmap
items:
- key: production.py
path:
_default: production.py
- name: uwsgi-configmap
mountPath:
_default: /opt/server/uwsgi.ini
subPath:
_default: uwsgi.ini
readOnly:
_default: true
configMap:
name:
_default: uwsgi-configmap
items:
- key: uwsgi.ini
path:
_default: uwsgi.ini
envs:
- name: ENVIRONMENT
value:
_default: production
- name: AERO_PUBLIC_HOST
value:
_default: https://ugok-sarex.uralmine.com
- name: AERO_HOST
value:
_default: https://ugok-sarex.uralmine.com
- name: BASE_AERO_URL
value:
_default: https://ugok-sarex.uralmine.com
- name: BASE_AUTH_URL
value:
_default: http://backend.django.svc.cluster.local:8000
- name: WORKFLOWS_HOST
value:
_default: http://workflows-api-service.workflow.svc.cluster.local:8000
- name: WORKFLOWS_URL
value:
_default: http://workflows-api-service.workflow.svc.cluster.local:8000
- name: RESOURCES_API_HOST
value:
_default: http://resources-service.resources.svc.cluster.local:8000
- name: EAV_HOST
value:
_default: http://eav-service.eav.svc.cluster.local:8000
- name: SAREX_API
value:
_default: https://ugok-sarex.uralmine.com
- name: DOCUMENTATIONS_URL
value:
_default: http://documentations-api.documentations.svc.cluster.local:8080
- name: DJANGO_SETTINGS_MODULE
value:
_default: config.settings.production
- name: DATABASE_HOST
value:
_default: postgres-service
- name: DATABASE_PORT
value:
_default: "5432"
- name: API_ADDRESS
value:
_default: "8000"
- name: RABBITMQ_HOSTNAME
value:
_default: rabbitmq.rabbitmq.svc.cluster.local:5672
secretEnvs:
- name: YC_S3_ACCESS_KEY_ID
secretName:
_default: issues-s3-secret
secretKey: access_key
- name: YC_S3_SECRET_ACCESS_KEY
secretName:
_default: issues-s3-secret
secretKey: secret_key
- name: YC_S3_BUCKET_NAME
secretName:
_default: issues-s3-secret
secretKey: bucket
- name: YC_S3_ENDPOINT_URL
secretName:
_default: issues-s3-secret
secretKey: endpoint
- name: DJANGO_BASIC_AUTH
secretName:
_default: django-auth
secretKey: key
- name: SAREX_USERNAME
secretName:
_default: sarex-auth
secretKey: username
- name: SAREX_PASSWORD
secretName:
_default: sarex-auth
secretKey: password
- name: DATABASE_USER
secretName:
_default: issues-postgresql-secret
secretKey: username
- name: DATABASE_PASSWORD
secretName:
_default: issues-postgresql-secret
secretKey: password
- name: DATABASE_NAME
secretName:
_default: issues-postgresql-secret
secretKey: database
- name: RABBITMQ_VHOST
secretName:
_default: issues-rabbitmq-secret
secretKey: vhost
- name: RABBITMQ_USERNAME
secretName:
_default: issues-rabbitmq-secret
secretKey: username
- name: RABBITMQ_PASSWORD
secretName:
_default: issues-rabbitmq-secret
secretKey: password
- name: JWT_PRIVATE_KEY
secretName:
_default: backend-secret
secretKey: ssh_private.key
- name: JWT_PUBLIC_KEY
secretName:
_default: backend-secret
secretKey: ssh_public.key
commitSha: ""
gitlabUri: ""
gitlabJobUrl: ""
owner: ""