From 37063d38e122bef38a6b2ea484eeb793de046d14 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 31 Aug 2026 19:51:23 +0500 Subject: [PATCH] =?UTF-8?q?feat(bi):=20standalone-=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BB=D0=B5=D0=B8=20bi=20=D0=B4=D0=BB=D1=8F=20ugok,=20brusnika?= =?UTF-8?q?-stage,=20brusnika-prod?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Не наследуют base (vault-native) — отдельные HelmRelease на universal-chart с обычными secretEnvs, как остальные сервисы этих контуров. Свои хосты, имена сервисов и kafka-bootstrap на контур; KAFKA_ENABLE=0, поэтому kafka без секретов. Подключены к соответствующим clusters/*/kustomization.yaml. Co-Authored-By: Claude Sonnet 5 --- apps/bi/brusnika-prod/backend.yaml | 191 ++++++++++++++++++++ apps/bi/brusnika-prod/frontend.yaml | 96 ++++++++++ apps/bi/brusnika-prod/kustomization.yaml | 8 + apps/bi/brusnika-stage/backend.yaml | 191 ++++++++++++++++++++ apps/bi/brusnika-stage/frontend.yaml | 96 ++++++++++ apps/bi/brusnika-stage/kustomization.yaml | 8 + apps/bi/ugok/backend.yaml | 194 +++++++++++++++++++++ apps/bi/ugok/frontend.yaml | 95 ++++++++++ apps/bi/ugok/kustomization.yaml | 9 + clusters/brusnika-prod/kustomization.yaml | 3 +- clusters/brusnika-stage/kustomization.yaml | 3 +- clusters/ugok/kustomization.yaml | 1 + 12 files changed, 893 insertions(+), 2 deletions(-) create mode 100644 apps/bi/brusnika-prod/backend.yaml create mode 100644 apps/bi/brusnika-prod/frontend.yaml create mode 100644 apps/bi/brusnika-prod/kustomization.yaml create mode 100644 apps/bi/brusnika-stage/backend.yaml create mode 100644 apps/bi/brusnika-stage/frontend.yaml create mode 100644 apps/bi/brusnika-stage/kustomization.yaml create mode 100644 apps/bi/ugok/backend.yaml create mode 100644 apps/bi/ugok/frontend.yaml create mode 100644 apps/bi/ugok/kustomization.yaml diff --git a/apps/bi/brusnika-prod/backend.yaml b/apps/bi/brusnika-prod/backend.yaml new file mode 100644 index 0000000..1ca9d35 --- /dev/null +++ b/apps/bi/brusnika-prod/backend.yaml @@ -0,0 +1,191 @@ +--- +# standalone HelmRelease по образцу apps/bi/ugok — контур brusnika-prod, без Vault. +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 + + image: + name: + _default: cr.yandex/crp3ccidau046kdj8g9q/bi-backend:production_37902c73 + pullPolicy: + _default: IfNotPresent + + deployment: + enabled: true + + name: + _default: bi-backend + + replicaCount: + _default: 1 + + port: + _default: 8000 + + resources: + requests: + cpu: + _default: 100m + memory: + _default: 512Mi + + probes: + liveness: + enabled: + _default: true + type: + _default: tcpSocket + tcpSocket: + port: + _default: 8000 + initialDelaySeconds: + _default: 20 + periodSeconds: + _default: 30 + timeoutSeconds: + _default: 3 + failureThreshold: + _default: 5 + readiness: + enabled: + _default: true + type: + _default: tcpSocket + tcpSocket: + port: + _default: 8000 + initialDelaySeconds: + _default: 10 + periodSeconds: + _default: 10 + timeoutSeconds: + _default: 3 + failureThreshold: + _default: 6 + + service: + enabled: true + + name: + _default: bi-backend-service + + type: + _default: ClusterIP + + port: + _default: 8000 + + targetPort: + _default: 8000 + + portName: + _default: http + + imagePullSecrets: + enabled: + _default: true + name: + _default: regcred + + 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://cde.brusnika.ru" + - name: WORKER_TIMEOUT + value: + _default: "120" + - name: PYTHONPATH + value: + _default: "src" + - name: ISSUES_SERVICE_HOST + value: + _default: "http://issues-service.issues.svc.cluster.local" + - name: EAV_SERVICE_HOST + value: + _default: "http://eav-service.eav.svc.cluster.local:8000" + - 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://cde.brusnika.ru/documentations/" + - name: KAFKA_BOOTSTRAP_SERVERS + value: + _default: '["brusnika-stage-kafka-bootstrap.kafka.svc.cluster.local:9093"]' + - name: KAFKA_TOPICS + value: + _default: '{"planning": "message-hub-prod"}' + - name: KAFKA_ENABLE + value: + _default: "0" + - name: DB_HOST + value: + _default: "postgres-service" + - name: DB_PORT + value: + _default: "5432" + - name: DB_DATABASE + value: + _default: "bi_db" + + secretEnvs: + - name: DB_USERNAME + secretName: + _default: bi-postgresql-secret + secretKey: username + - name: DB_PASSWORD + secretName: + _default: bi-postgresql-secret + secretKey: password + - name: SUPERSET_JWT_SECRET + secretName: + _default: bi-superset-secret + secretKey: jwt_secret + + commitSha: "" + gitlabUri: "" + gitlabJobUrl: "" + owner: "" diff --git a/apps/bi/brusnika-prod/frontend.yaml b/apps/bi/brusnika-prod/frontend.yaml new file mode 100644 index 0000000..db59a7e --- /dev/null +++ b/apps/bi/brusnika-prod/frontend.yaml @@ -0,0 +1,96 @@ +--- +# standalone HelmRelease по образцу apps/bi/ugok. +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: 1 + + port: + _default: 80 + + resources: + requests: + cpu: + _default: 50m + memory: + _default: 64Mi + + probes: + liveness: + enabled: false + readiness: + enabled: false + + 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: "" diff --git a/apps/bi/brusnika-prod/kustomization.yaml b/apps/bi/brusnika-prod/kustomization.yaml new file mode 100644 index 0000000..d7ddf8e --- /dev/null +++ b/apps/bi/brusnika-prod/kustomization.yaml @@ -0,0 +1,8 @@ +--- +# Не наследуем base (vault-native) — standalone HelmRelease, как apps/bi/ugok. +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: bi +resources: + - backend.yaml + - frontend.yaml diff --git a/apps/bi/brusnika-stage/backend.yaml b/apps/bi/brusnika-stage/backend.yaml new file mode 100644 index 0000000..05981a0 --- /dev/null +++ b/apps/bi/brusnika-stage/backend.yaml @@ -0,0 +1,191 @@ +--- +# standalone HelmRelease по образцу apps/bi/ugok — контур brusnika-stage, без Vault. +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 + + image: + name: + _default: cr.yandex/crp3ccidau046kdj8g9q/bi-backend:production_37902c73 + pullPolicy: + _default: IfNotPresent + + deployment: + enabled: true + + name: + _default: bi-backend + + replicaCount: + _default: 1 + + port: + _default: 8000 + + resources: + requests: + cpu: + _default: 100m + memory: + _default: 512Mi + + probes: + liveness: + enabled: + _default: true + type: + _default: tcpSocket + tcpSocket: + port: + _default: 8000 + initialDelaySeconds: + _default: 20 + periodSeconds: + _default: 30 + timeoutSeconds: + _default: 3 + failureThreshold: + _default: 5 + readiness: + enabled: + _default: true + type: + _default: tcpSocket + tcpSocket: + port: + _default: 8000 + initialDelaySeconds: + _default: 10 + periodSeconds: + _default: 10 + timeoutSeconds: + _default: 3 + failureThreshold: + _default: 6 + + service: + enabled: true + + name: + _default: bi-backend-service + + type: + _default: ClusterIP + + port: + _default: 8000 + + targetPort: + _default: 8000 + + portName: + _default: http + + imagePullSecrets: + enabled: + _default: true + name: + _default: regcred + + 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://test.sarex.brusnika.tech" + - name: WORKER_TIMEOUT + value: + _default: "120" + - name: PYTHONPATH + value: + _default: "src" + - name: ISSUES_SERVICE_HOST + value: + _default: "http://issues-service.issues.svc.cluster.local" + - name: EAV_SERVICE_HOST + value: + _default: "http://eav-service.eav.svc.cluster.local:8000" + - 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://test.sarex.brusnika.tech/documentations/" + - name: KAFKA_BOOTSTRAP_SERVERS + value: + _default: '["brusnika-stage-kafka-bootstrap.kafka.svc.cluster.local:9093"]' + - name: KAFKA_TOPICS + value: + _default: '{"planning": "message-hub-prod"}' + - name: KAFKA_ENABLE + value: + _default: "0" + - name: DB_HOST + value: + _default: "postgres-service" + - name: DB_PORT + value: + _default: "5432" + - name: DB_DATABASE + value: + _default: "bi_db" + + secretEnvs: + - name: DB_USERNAME + secretName: + _default: bi-postgresql-secret + secretKey: username + - name: DB_PASSWORD + secretName: + _default: bi-postgresql-secret + secretKey: password + - name: SUPERSET_JWT_SECRET + secretName: + _default: bi-superset-secret + secretKey: jwt_secret + + commitSha: "" + gitlabUri: "" + gitlabJobUrl: "" + owner: "" diff --git a/apps/bi/brusnika-stage/frontend.yaml b/apps/bi/brusnika-stage/frontend.yaml new file mode 100644 index 0000000..db59a7e --- /dev/null +++ b/apps/bi/brusnika-stage/frontend.yaml @@ -0,0 +1,96 @@ +--- +# standalone HelmRelease по образцу apps/bi/ugok. +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: 1 + + port: + _default: 80 + + resources: + requests: + cpu: + _default: 50m + memory: + _default: 64Mi + + probes: + liveness: + enabled: false + readiness: + enabled: false + + 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: "" diff --git a/apps/bi/brusnika-stage/kustomization.yaml b/apps/bi/brusnika-stage/kustomization.yaml new file mode 100644 index 0000000..d7ddf8e --- /dev/null +++ b/apps/bi/brusnika-stage/kustomization.yaml @@ -0,0 +1,8 @@ +--- +# Не наследуем base (vault-native) — standalone HelmRelease, как apps/bi/ugok. +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: bi +resources: + - backend.yaml + - frontend.yaml diff --git a/apps/bi/ugok/backend.yaml b/apps/bi/ugok/backend.yaml new file mode 100644 index 0000000..022234a --- /dev/null +++ b/apps/bi/ugok/backend.yaml @@ -0,0 +1,194 @@ +--- +# standalone HelmRelease по образцу apps/bi/base + apps/eav/ugok — в ugok +# Vault не используется, поэтому не наследуем base (vault-native), а собираем +# отдельный HelmRelease с обычными secretEnvs, без serviceAccount / +# podAnnotations / vault-обёртки в command/args. +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 + + image: + name: + _default: 10.4.10.187:80/library/bi-backend:production_37902c73 + pullPolicy: + _default: IfNotPresent + + deployment: + enabled: true + + name: + _default: bi-backend + + replicaCount: + _default: 1 + + port: + _default: 8000 + + resources: + requests: + cpu: + _default: 100m + memory: + _default: 512Mi + + probes: + liveness: + enabled: + _default: true + type: + _default: tcpSocket + tcpSocket: + port: + _default: 8000 + initialDelaySeconds: + _default: 20 + periodSeconds: + _default: 30 + timeoutSeconds: + _default: 3 + failureThreshold: + _default: 5 + readiness: + enabled: + _default: true + type: + _default: tcpSocket + tcpSocket: + port: + _default: 8000 + initialDelaySeconds: + _default: 10 + periodSeconds: + _default: 10 + timeoutSeconds: + _default: 3 + failureThreshold: + _default: 6 + + service: + enabled: true + + name: + _default: bi-backend-service + + type: + _default: ClusterIP + + port: + _default: 8000 + + targetPort: + _default: 8000 + + portName: + _default: http + + imagePullSecrets: + enabled: + _default: true + name: + _default: regcred + + 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.ugok.lan" + - name: WORKER_TIMEOUT + value: + _default: "120" + - name: PYTHONPATH + value: + _default: "src" + - name: ISSUES_SERVICE_HOST + value: + _default: "http://issues-service.issues.svc.cluster.local" + - name: EAV_SERVICE_HOST + value: + _default: "http://eav-service.eav.svc.cluster.local:8000" + - name: PM_SERVICE_HOST + value: + _default: "http://backend-service.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.ugok.lan/documentations/" + - name: KAFKA_BOOTSTRAP_SERVERS + value: + _default: '["ugok-prod-kafka-bootstrap.kafka.svc.cluster.local:9093"]' + - name: KAFKA_TOPICS + value: + _default: '{"planning": "message-hub-prod"}' + - name: KAFKA_ENABLE + value: + _default: "0" + - name: DB_HOST + value: + _default: "postgres-service" + - name: DB_PORT + value: + _default: "5432" + - name: DB_DATABASE + value: + _default: "bi_db" + + secretEnvs: + - name: DB_USERNAME + secretName: + _default: bi-postgresql-secret + secretKey: username + - name: DB_PASSWORD + secretName: + _default: bi-postgresql-secret + secretKey: password + - name: SUPERSET_JWT_SECRET + secretName: + _default: bi-superset-secret + secretKey: jwt_secret + + commitSha: "" + gitlabUri: "" + gitlabJobUrl: "" + owner: "" diff --git a/apps/bi/ugok/frontend.yaml b/apps/bi/ugok/frontend.yaml new file mode 100644 index 0000000..157ed56 --- /dev/null +++ b/apps/bi/ugok/frontend.yaml @@ -0,0 +1,95 @@ +--- +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: 10.4.10.187:80/library/bi-frontend:production_afb137d4 + pullPolicy: + _default: IfNotPresent + + deployment: + enabled: true + + name: + _default: bi-frontend + + replicaCount: + _default: 1 + + port: + _default: 80 + + resources: + requests: + cpu: + _default: 50m + memory: + _default: 64Mi + + probes: + liveness: + enabled: false + readiness: + enabled: false + + 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: "" diff --git a/apps/bi/ugok/kustomization.yaml b/apps/bi/ugok/kustomization.yaml new file mode 100644 index 0000000..842516f --- /dev/null +++ b/apps/bi/ugok/kustomization.yaml @@ -0,0 +1,9 @@ +--- +# Не наследуем base (vault-native) — в ugok Vault не используется. +# Отдельные standalone HelmRelease с обычными secretEnvs. +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: bi +resources: + - backend.yaml + - frontend.yaml diff --git a/clusters/brusnika-prod/kustomization.yaml b/clusters/brusnika-prod/kustomization.yaml index 534de1d..416197b 100644 --- a/clusters/brusnika-prod/kustomization.yaml +++ b/clusters/brusnika-prod/kustomization.yaml @@ -31,4 +31,5 @@ resources: - ../../apps/document-link/brusnika-prod - ../../apps/checklists/brusnika-prod - ../../apps/measurements/brusnika-prod - - ../../apps/contracts/brusnika-prod \ No newline at end of file + - ../../apps/contracts/brusnika-prod + - ../../apps/bi/brusnika-prod \ No newline at end of file diff --git a/clusters/brusnika-stage/kustomization.yaml b/clusters/brusnika-stage/kustomization.yaml index b7d84b5..12f7f2b 100644 --- a/clusters/brusnika-stage/kustomization.yaml +++ b/clusters/brusnika-stage/kustomization.yaml @@ -34,4 +34,5 @@ resources: - ../../apps/drawings/brusnika-stage - ../../apps/ams-sync/brusnika-stage - ../../apps/iam/brusnika-stage - - ../../apps/auth-flow/brusnika-stage \ No newline at end of file + - ../../apps/auth-flow/brusnika-stage + - ../../apps/bi/brusnika-stage \ No newline at end of file diff --git a/clusters/ugok/kustomization.yaml b/clusters/ugok/kustomization.yaml index 1bf201e..7e74c56 100644 --- a/clusters/ugok/kustomization.yaml +++ b/clusters/ugok/kustomization.yaml @@ -39,3 +39,4 @@ resources: - ../../apps/documentations/ugok - ../../apps/django/ugok - ../../apps/processing/ugok + - ../../apps/bi/ugok