Compare commits

..

2 Commits

Author SHA1 Message Date
ivan
d3a973adea feat(bi): новое приложение bi (ns bi) на universal-chart + подключение к d8-ugmk-prod
apps/bi/base — bi-backend (vault-native, SA bi-vault) и bi-frontend.
apps/bi/d8-ugmk-prod — патч env под контур УГМК (хосты issues/eav/pm,
AUTH_HOST, kafka), namespace с deckhouse pod-policy.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 16:08:29 +05:00
ivan
710f20a98e fix(flows/brusnika-stage): не создавать backend-service из celery HR
celery.yaml и backend.yaml оба рендерили Service backend-service; релиз
celery выигрывал владение и ставил селектор app=celery -> трафик уходил
в celery-под -> 503. service.enabled: false, как в brusnika-prod.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 16:08:29 +05:00
9 changed files with 439 additions and 1 deletions

207
apps/bi/base/backend.yaml Normal file
View File

@ -0,0 +1,207 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: bi-backend
namespace: bi
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:
main:
enabled: true
serviceAccount:
enabled:
_default: true
name:
_default: bi-vault
image:
name:
_default: cr.yandex/crp3ccidau046kdj8g9q/bi-backend:production_37902c73
pullPolicy:
_default: IfNotPresent
deployment:
enabled: true
name:
_default: bi-backend
replicaCount:
_default: 3
port:
_default: 80
command:
_default: ["/bin/sh", "-ec"]
args:
_default:
- |
set -a
[ -f /vault/secrets/bi-db ] && . /vault/secrets/bi-db
set +a
exec /opt/entrypoint.sh
resources:
requests:
cpu:
_default: 500m
memory:
_default: 1Gi
probes:
liveness:
enabled: false
readiness:
enabled: false
service:
enabled: true
name:
_default: bi-backend-service
type:
_default: ClusterIP
port:
_default: 80
targetPort:
_default: 80
portName:
_default: http
imagePullSecrets:
enabled:
_default: true
name:
_default: regcred
volumes:
_default:
- name: ya-ca-cert
mountPath:
_default: /opt/config
readOnly:
_default: true
configMap:
name:
_default: ya-ca-cert
items:
- key: ca.crt
path:
_default: ca.crt
envs:
- name: SETTINGS_DEBUG
value:
_default: "0"
- name: SETTINGS_VERIFY_SSL
value:
_default: "1"
- name: SETTINGS_API_V1_PREFIX
value:
_default: "/api/v1"
- name: AUTH_HOST
value:
_default: "https://lk.sarex.io"
- name: WORKER_TIMEOUT
value:
_default: "120"
- name: PYTHONPATH
value:
_default: "src"
- name: ISSUES_SERVICE_HOST
value:
_default: "http://sarex-issues-service.issues-prod"
- name: EAV_SERVICE_HOST
value:
_default: "http://eav-service.eav-prod"
- name: PM_SERVICE_HOST
value:
_default: "http://pm-backend-service.pm-prod:8000"
- name: SUPERSET_SYSTEM_WIDGETS
value:
_default: '{"MDR": {"id": "e7343f21-1ee0-4a87-b712-e8cfd413cc49","name": "MDR"},"SC": {"id": "d63d25e4-eab6-452f-8b31-065094bc2cb6","name": "Стройконтроль"}}'
- name: SUPERSET_DOCUMENTATION_URL
value:
_default: "https://lk.sarex.io/documentations/"
- name: KAFKA_BOOTSTRAP_SERVERS
value:
_default: '["localhost:9091"]'
- name: KAFKA_TOPICS
value:
_default: '{"planning": "message-hub-prod"}'
- name: KAFKA_ENABLE
value:
_default: "0"
secretEnvs:
- name: SUPERSET_JWT_SECRET
secretName:
_default: "superset-jwt-secret"
secretKey: "jwt_secret"
podAnnotations:
_default:
traffic.sidecar.istio.io/excludeOutboundPorts: "8200"
vault.hashicorp.com/agent-init-first: "true"
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/agent-pre-populate-only: "true"
vault.hashicorp.com/auth-path: auth/kubernetes
vault.hashicorp.com/role: bi
vault.hashicorp.com/agent-inject-secret-bi-db: secrets/data/apps/bi/postgres
vault.hashicorp.com/agent-inject-template-bi-db: |-
{{- with secret "secrets/data/apps/bi/postgres" -}}
DB_HOST={{ index .Data.data "host" }}
DB_PORT={{ index .Data.data "port" }}
DB_DATABASE={{ index .Data.data "database" }}
DB_USERNAME={{ index .Data.data "username" }}
DB_PASSWORD={{ index .Data.data "password" }}
{{- end -}}
commitSha: ""
gitlabUri: ""
gitlabJobUrl: ""
owner: ""

127
apps/bi/base/frontend.yaml Normal file
View File

@ -0,0 +1,127 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: bi-frontend
namespace: bi
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:
frontend:
enabled: true
image:
name:
_default: cr.yandex/crp3ccidau046kdj8g9q/bi-frontend:production_afb137d4
pullPolicy:
_default: IfNotPresent
deployment:
enabled: true
name:
_default: bi-frontend
replicaCount:
_default: 2
port:
_default: 80
resources:
requests:
cpu:
_default: 100m
memory:
_default: 128Mi
probes:
liveness:
enabled:
_default: true
type:
_default: httpGet
httpGet:
path:
_default: /
port:
_default: 80
initialDelaySeconds:
_default: 10
periodSeconds:
_default: 60
timeoutSeconds:
_default: 1
failureThreshold:
_default: 3
readiness:
enabled:
_default: true
type:
_default: httpGet
httpGet:
path:
_default: /
port:
_default: 80
initialDelaySeconds:
_default: 10
periodSeconds:
_default: 30
timeoutSeconds:
_default: 1
failureThreshold:
_default: 3
service:
enabled: true
name:
_default: bi-frontend-frontend-svc
type:
_default: ClusterIP
port:
_default: 80
targetPort:
_default: 80
portName:
_default: http
imagePullSecrets:
enabled:
_default: true
name:
_default: regcred
commitSha: ""
gitlabUri: ""
gitlabJobUrl: ""
owner: ""

View File

@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: bi
resources:
- namespace.yaml
- backend.yaml
- frontend.yaml

View File

@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: bi
labels:
istio-injection: enabled

View File

@ -0,0 +1,66 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: bi-backend
namespace: bi
spec:
values:
services:
main:
envs:
- name: SETTINGS_DEBUG
value:
_default: "0"
- name: SETTINGS_VERIFY_SSL
value:
_default: "1"
- name: SETTINGS_API_V1_PREFIX
value:
_default: "/api/v1"
- name: AUTH_HOST
value:
_default: "https://sarex.uralmine.com"
- name: WORKER_TIMEOUT
value:
_default: "120"
- name: PYTHONPATH
value:
_default: "src"
- name: ISSUES_SERVICE_HOST
value:
_default: "http://backend-svc.issues.svc.cluster.local"
- name: EAV_SERVICE_HOST
value:
_default: "http://backend-svc.eav.svc.cluster.local"
- name: PM_SERVICE_HOST
value:
_default: "http://backend-svc.pm.svc.cluster.local:8000"
- name: SUPERSET_SYSTEM_WIDGETS
value:
_default: '{"MDR": {"id": "e7343f21-1ee0-4a87-b712-e8cfd413cc49","name": "MDR"},"SC": {"id": "d63d25e4-eab6-452f-8b31-065094bc2cb6","name": "Стройконтроль"}}'
- name: SUPERSET_DOCUMENTATION_URL
value:
_default: "https://sarex.uralmine.com/documentations/"
- name: KAFKA_BOOTSTRAP_SERVERS
value:
_default: '["kafka-kafka-contour.kafka.svc.cluster.local:9092"]'
- name: KAFKA_TOPICS
value:
_default: '{"planning": "message-hub-prod"}'
- name: KAFKA_ENABLE
value:
_default: "0"

View File

@ -0,0 +1,14 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base
patches:
- path: namespace.yaml
target:
kind: Namespace
name: bi
- path: backend.yaml
target:
kind: HelmRelease
name: bi-backend

View File

@ -0,0 +1,8 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: bi
labels:
istio-injection: enabled
security.deckhouse.io/pod-policy: privileged

View File

@ -61,7 +61,7 @@ spec:
enabled: false
service:
enabled: true
enabled: false
name:
_default: backend-service

View File

@ -53,3 +53,4 @@ resources:
- ../../apps/pm/d8-ugmk-prod
- ../../apps/message-hub/d8-ugmk-prod
- ../../apps/transmittal/d8-ugmk-prod
- ../../apps/bi/d8-ugmk-prod