Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a713c46ed0 | ||
|
|
492d31b253 | ||
|
|
0b5a9b8f21 | ||
|
|
a67ab33e5d | ||
|
|
75d1fba14a | ||
|
|
da2a0b33a7 | ||
|
|
cb4130ad9d | ||
|
|
b5471e664d | ||
|
|
2474d82cea | ||
|
|
1f336b6f93 | ||
|
|
be205b3b14 | ||
|
|
3640bc8229 | ||
|
|
f3c2fa194b | ||
|
|
ab086a86b4 | ||
|
|
36313e8f6f | ||
|
|
0c0c3ebd9d | ||
|
|
c8555d432c | ||
|
|
e1a81d3dd8 | ||
|
|
5efa1a5fd2 | ||
|
|
6d6703ed2d | ||
|
|
3d205fa7e0 | ||
|
|
96d0d2e373 | ||
|
|
285255e628 | ||
|
|
c8eefab4b6 | ||
|
|
c24f02b078 | ||
|
|
c750a08f8d | ||
|
|
0a69d528b3 | ||
|
|
f9874afb2b | ||
|
|
7d90c23734 | ||
|
|
f45802c0b8 | ||
|
|
00056b9150 | ||
|
|
46616f2260 | ||
|
|
d320af6ad7 | ||
|
|
e55958f7cb | ||
|
|
77204c1550 | ||
|
|
c7c194feaa | ||
|
|
51b9120797 | ||
|
|
237dcb9b28 | ||
|
|
c2a9bae0db | ||
|
|
bddcc955fe | ||
|
|
ee1881e516 | ||
|
|
8e14cd1e0b | ||
|
|
565faa0e17 | ||
|
|
da8e40c044 | ||
|
|
4ae7a8286b | ||
|
|
b28e5dd27a | ||
|
|
037d069c85 | ||
|
|
457f0dad41 | ||
|
|
8a8cd66f59 | ||
|
|
e39404cb4c | ||
|
|
262401efe1 | ||
|
|
5105eee602 | ||
|
|
714dc55db1 | ||
|
|
a7c97027ae | ||
|
|
934ccbbb73 | ||
|
|
4c4bb6f8a4 | ||
|
|
497ca1342d | ||
|
|
383d19157c | ||
|
|
5f84c8d19b | ||
|
|
9a39f4568e | ||
|
|
e122cc6f0b | ||
|
|
6244a05c19 | ||
|
|
b7f4d07544 | ||
|
|
f9bde75ed7 | ||
|
|
5ef655f1bc | ||
|
|
e4953042c0 | ||
|
|
0f9969ddad | ||
|
|
8551d58d08 | ||
|
|
cb37ba000e | ||
|
|
75c47e932f | ||
|
|
4d9b1807bf | ||
|
|
2c3fce7834 | ||
|
|
83a8339db7 | ||
|
|
3a2ee9d6b6 | ||
|
|
333677dedf | ||
|
|
0ad515e6c4 | ||
|
|
ea23b885c4 | ||
|
|
d87af910d6 | ||
|
|
93e9d9fed0 | ||
|
|
eb2748170a | ||
|
|
361b7155bf | ||
|
|
fb001710c3 | ||
|
|
b8c29be7a5 | ||
|
|
2bbee05013 |
25
.dockerignore
Normal file
25
.dockerignore
Normal file
@ -0,0 +1,25 @@
|
||||
# В контекст сборки нужны только манифесты: clusters/, apps/, infrastructure/
|
||||
# и скрипты из hack/. Всё остальное — история, IDE, секреты — только раздувает
|
||||
# контекст и рискует уехать в образ.
|
||||
.git
|
||||
.gitignore
|
||||
.idea
|
||||
.claude
|
||||
CLAUDE.md
|
||||
.env
|
||||
.env.*
|
||||
docs
|
||||
*.md
|
||||
aero
|
||||
inventory.yaml
|
||||
tmp
|
||||
.tmp/
|
||||
snapshots
|
||||
out
|
||||
|
||||
# Секреты и ключи не должны попадать в контекст сборки даже случайно.
|
||||
*.pem
|
||||
*.key
|
||||
*.p12
|
||||
kubeconfig*
|
||||
*service-account*.json
|
||||
16
.gitignore
vendored
16
.gitignore
vendored
@ -1,9 +1,21 @@
|
||||
.idea
|
||||
.claude
|
||||
CLAUDE.md
|
||||
.env
|
||||
.env.*
|
||||
|
||||
tmp
|
||||
.tmp/
|
||||
snapshots/*
|
||||
scripts/.venv
|
||||
scripts
|
||||
|
||||
# Рантайм-артефакты контура aero (gitea-data, k3s-storage, ключи реестра)
|
||||
# переехали в infra/aero-deploy вместе с docker-compose, который их создаёт.
|
||||
# Здесь остаётся только gitea-data: каталог мог остаться от прежней раскладки.
|
||||
gitea-data/
|
||||
|
||||
# --- Секреты и ключи: не коммитить никогда ---
|
||||
*.pem
|
||||
*.key
|
||||
*.p12
|
||||
kubeconfig*
|
||||
*service-account*.json
|
||||
|
||||
81
CLAUDE.md
81
CLAUDE.md
@ -1,81 +0,0 @@
|
||||
# Карта репозитория
|
||||
|
||||
Навигационный индекс `infra/iac`: где что лежит, какие здесь конвенции путей и на чём легко ошибиться. Для быстрого входа новым людям и для агентов (файл автоматически подхватывается Claude Code).
|
||||
|
||||
Не дублирует [README.md](README.md) (как пользоваться Flux, как добавить компонент) и [IAC-CATALOG.md](IAC-CATALOG.md) (подробный каталог всего estate `infra/*`) — отсылает к ним.
|
||||
|
||||
## Что это за репозиторий
|
||||
|
||||
Только **FluxCD v2 (GitOps) + Kustomize-оверлеи + HelmRelease**.
|
||||
|
||||
Здесь принципиально **нет** и искать бесполезно:
|
||||
|
||||
| Что | Где искать |
|
||||
|---|---|
|
||||
| Terraform / Terragrunt | `infra/terraform`, `infra/terraform-contour`, `infra/terraform-contour-mirror` |
|
||||
| Ansible | `infra/ansible-playbooks`, `ansible-patroni-cluster`, `ansible-minio-cluster` |
|
||||
| Провижининг кластеров | `infra/kubespray`, `infra/k8s-provision` |
|
||||
| ArgoCD (контур ГПН) | `infra/iac-gpn` |
|
||||
| CI сборки образов | `generic/common-ci`, `generic/base-image` |
|
||||
| Push-деплой через `.helm/` (ветка = контур) | ~60 компонентных репозиториев, см. `IAC-CATALOG.md` §4 |
|
||||
|
||||
Чарты тянутся из `oci://cr.yandex/crp3ccidau046kdj8g9q/charts`, образы — `cr.yandex/crp3ccidau046kdj8g9q/<name>:<tag>`. Все приложения ставятся на общий чарт `universal-chart`; значения обёрнуты в ключ `_default` и выбираются по `global.env`.
|
||||
|
||||
## Дерево
|
||||
|
||||
| Путь | Что |
|
||||
|---|---|
|
||||
| `clusters/` | 10 точек входа Flux — **источник истины «что где раскатано»** |
|
||||
| `infrastructure/` | 36 платформенных компонентов |
|
||||
| `apps/` | 37 прикладных сервисов |
|
||||
| `docs/apps/` | 35 mermaid-диаграмм по сервисам + `README.md` с доменной группировкой |
|
||||
| `docs/closed-contour-deployment.md` | ранбук поднятия закрытого контура |
|
||||
| `README.md` | mermaid-мегакарта платформы, структура репозитория, инструкции по добавлению app / infra / кластера |
|
||||
| `IAC-CATALOG.md` | каталог всего `infra/*`; §5 — про этот репозиторий |
|
||||
| `inventory.yaml` | сгенерированный снимок прода: 59 namespace → kind → имена |
|
||||
|
||||
## Конвенции путей
|
||||
|
||||
**Кластер.** `clusters/<cluster>/kustomization.yaml` — плоский список `../../apps/<app>/<cluster>`. Инфраструктура подключается двумя разными способами:
|
||||
|
||||
- `d8-ugmk-prod` — прямо в корневом kustomization как `../../infrastructure/<comp>/d8-ugmk-prod`;
|
||||
- `brusnika-prod`, `brusnika-stage`, `wb` — через `clusters/<c>/infrastructure/kustomization.yaml`, который ссылается на `../../../infrastructure/<comp>` (резолвится в `base`), а различия лежат в `clusters/<c>/infrastructure/patches/*.yaml`.
|
||||
|
||||
Кластеры: `brusnika-prod`, `brusnika-stage`, `d8-ugmk-prod`, `wb`, `yc-cps-prod`, `yc-ecp`, `yc-infra-prod`, `yc-k8s-test`, `yc-k8s-test-02`, `contour`.
|
||||
|
||||
**Приложение.** `apps/<app>/base/` — по одному `.yaml` на процесс (`backend.yaml`, `celery.yaml`, `frontend.yaml`) плюс `namespace.yaml`; оверлеи в `apps/<app>/<cluster>/`. Namespace = имя приложения. Рядом с манифестами лежит документация: `CONFIGURATION.md` (все env-переменные и откуда берутся), `ENDPOINTS.md` (исходящие HTTP-вызовы), `openapi.yaml` (входящий контракт), `.env.example`. Если процессов несколько — файлы с префиксом процесса: `api.ENDPOINTS.md`, `pdm.CONFIGURATION.md`, `frontend.CONFIGURATION.md`.
|
||||
|
||||
**Инфра-компонент.** `infrastructure/<comp>/base/` + оверлеи `<comp>/<cluster>/`. Корневой `infrastructure/<comp>/kustomization.yaml` всегда указывает просто на `base`. Чарты идут с суффиксом контура: `vault-contour`, `keycloak-contour`, `postgresql-contour` и — внимание — `idp-contour` это Zitadel.
|
||||
|
||||
## Где искать конкретное
|
||||
|
||||
| Вопрос | Файл |
|
||||
|---|---|
|
||||
| Что развёрнуто в контуре X | `clusters/X/kustomization.yaml` (+ `clusters/X/infrastructure/kustomization.yaml`) |
|
||||
| Откуда Flux тянет контур | `clusters/X/flux-system/gotk-sync.yaml` |
|
||||
| Внешние хосты, TLS, path-роутинг | `infrastructure/istio-config/<cluster>/istio-config.yaml` либо `clusters/<c>/infrastructure/patches/istio-config.yaml` |
|
||||
| Кто кого зовёт (граф сервисов) | `apps/*/ENDPOINTS.md` + env-переменные с `*.svc.cluster.local` в `apps/**/*.yaml` |
|
||||
| Что делает сервис, его БД / брокер / S3 | `docs/apps/<app>.md` |
|
||||
| Значение env-переменной | `apps/<app>/CONFIGURATION.md` |
|
||||
| Секреты | Vault Agent Injector; путь `secrets/data/apps/<app>/postgres`, role = имя приложения, SA = `<app>-vault` |
|
||||
| Тег образа в контуре | `apps/<app>/<cluster>/*.yaml`, поле `image.tag` |
|
||||
| Что реально в проде по namespace | `inventory.yaml` |
|
||||
| Где лежит исходный код приложения | `IAC-CATALOG.md` §5.3.8 |
|
||||
|
||||
## Ловушки
|
||||
|
||||
- **`dsinv/`** — оверлей есть у 25 приложений, но `clusters/dsinv/` не существует. Это материализованный снимок живого контура WB, а не источник деплоя. Развёрнутым не считать.
|
||||
- **Две несовместимые конвенции оверлеев** (`IAC-CATALOG.md` §5.3.4). `d8-ugmk-prod`, `yc-k8s-test`, `dsinv` наследуют `base` и патчат его. `brusnika-prod`, `brusnika-stage`, `yc-ecp` — полные копии HelmRelease, которые молча дрейфуют от base. Правка `base` на них не влияет.
|
||||
- **`IAC-CATALOG.md` — снимок на 05.08.2026** и по составу приложений на контур уже расходится с реальностью (там у `wb` ноль приложений, фактически 26 оверлеев). Всегда сверяться с `clusters/*/kustomization.yaml`.
|
||||
- **Мегадиаграмма в `README.md` идеализирована** — рисована руками, показывает все приложения на одной Postgres и все фронтенды за `control-interface`. Проверяемые источники — env-переменные и istio-config.
|
||||
- **`clusters/contour/` — не кластер, а шаблон**: в нём нет `flux-system`, только `apps.yaml`, `infrastructure.yaml`, `helm-repositories.yaml`.
|
||||
- **Path-роутинг виден в репозитории только у `d8-ugmk-prod` и `yc-ecp`.** В Brusnika и WB весь прикладной трафик уходит одним правилом в `nginx-service.global-ingress` / `yet-another-nginx-service.global-ingress`, а разводка по путям происходит вне репозитория. Через Istio там публикуются только платформенные UI (Gitea, Grafana, OpenObserve, Superset, Vault, Zitadel, Camunda, MinIO).
|
||||
- **Имена namespace расходятся между источниками**: `inventory.yaml` использует суффикс (`flows-prod`), `apps/` — голое имя (`flows`).
|
||||
- **17 оверлеев приложений не подключены ни к одному кластеру** — мёртвый код.
|
||||
- **Нет диаграмм** в `docs/apps/` для `iam`, `auth-flow`, `ams-sync`.
|
||||
- **Чистые фронтенды без бэкенда в этом репозитории**: `auth-flow`, `control-interface`, `cross-section`, `document-link`, `prescriptions`, `projects`, `remarks`, `reviews`, `stamp-verification`. Бэкенд `projects` живёт в `planning/projects-backend`.
|
||||
- Самые центральные сервисы по числу входящих ссылок: `documentations` (~85), `processing` / `workflow` (~76), `django` (~53), `eav` (~47), `resources` (~44), `bim` (~39), `flows` (~38). Менять их конфигурацию — дороже всего.
|
||||
|
||||
## Поддержка файла
|
||||
|
||||
Карта описывает структуру и конвенции, а не текущий состав. Обновлять при появлении нового кластера, смене конвенции оверлеев или когда очередная ловушка перестаёт быть правдой. Списки приложений и версии сюда не дублировать — для этого есть `clusters/*/kustomization.yaml` и `IAC-CATALOG.md`.
|
||||
77
Dockerfile
Normal file
77
Dockerfile
Normal file
@ -0,0 +1,77 @@
|
||||
# Полная сборка манифестов IaC-репозитория для одного контура.
|
||||
#
|
||||
# docker build --build-arg CONTOUR=aero -t iac:aero .
|
||||
# docker run --rm iac:aero list # что собралось
|
||||
# docker run --rm iac:aero cat clusters # слои Flux одним потоком
|
||||
# docker run --rm -v "$PWD/out:/export" iac:aero export
|
||||
#
|
||||
# Контур — имя каталога в clusters/ (aero, brusnika-prod, dsinv, wb, ...).
|
||||
# Тот же идентификатор служит именем overlay внутри apps/* и infrastructure/*,
|
||||
# поэтому одного аргумента хватает на весь рендер.
|
||||
#
|
||||
# Сборка офлайновая: kustomize build разворачивает оверлеи и патчи, а
|
||||
# HelmRelease остаётся Custom Resource'ом — чарты тянет Flux уже в кластере.
|
||||
# Ни helm, ни доступ к OCI-реестру здесь не нужны. Исключение — валидация:
|
||||
# схемы CRD kubeconform берёт из сети (отключается VALIDATE=0).
|
||||
|
||||
ARG KUSTOMIZE_VERSION=v5.4.3
|
||||
ARG KUBECONFORM_VERSION=v0.6.7
|
||||
|
||||
FROM registry.k8s.io/kustomize/kustomize:${KUSTOMIZE_VERSION} AS kustomize
|
||||
FROM ghcr.io/yannh/kubeconform:${KUBECONFORM_VERSION} AS kubeconform
|
||||
|
||||
|
||||
FROM alpine:3.20 AS builder
|
||||
|
||||
# Контур обязателен по смыслу, но значение по умолчанию оставлено: сборка без
|
||||
# --build-arg собирает aero, а не падает на пустой переменной.
|
||||
ARG CONTOUR=aero
|
||||
ARG VALIDATE=1
|
||||
ARG KUBERNETES_VERSION=1.30.0
|
||||
|
||||
COPY --from=kustomize /app/kustomize /usr/local/bin/kustomize
|
||||
COPY --from=kubeconform /kubeconform /usr/local/bin/kubeconform
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Скрипт копируется отдельным слоем: правка манифестов не инвалидирует его,
|
||||
# а правка скрипта не тянет за собой пересборку базовых слоёв.
|
||||
COPY hack/render-contour.sh /usr/local/bin/render-contour
|
||||
RUN chmod +x /usr/local/bin/render-contour
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN render-contour "${CONTOUR}" /out
|
||||
|
||||
# Валидация отдельным слоем: смена версии Kubernetes не пересобирает рендер.
|
||||
# --ignore-missing-schemas пропускает ресурсы, чьих схем нет в каталоге
|
||||
# (часть CRD), но не заглушает ошибки в тех, что нашлись.
|
||||
RUN if [ "${VALIDATE}" = "1" ]; then \
|
||||
kubeconform \
|
||||
-kubernetes-version "${KUBERNETES_VERSION}" \
|
||||
-strict \
|
||||
-ignore-missing-schemas \
|
||||
-schema-location default \
|
||||
-schema-location 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json' \
|
||||
-summary \
|
||||
/out/*.yaml ; \
|
||||
else \
|
||||
echo "VALIDATE=0 — проверка схемами пропущена" ; \
|
||||
fi
|
||||
|
||||
|
||||
FROM alpine:3.20
|
||||
|
||||
ARG CONTOUR=aero
|
||||
ENV CONTOUR=${CONTOUR}
|
||||
|
||||
LABEL org.opencontainers.image.title="iac-manifests" \
|
||||
org.opencontainers.image.description="Собранные манифесты контура ${CONTOUR}" \
|
||||
ru.iac.contour="${CONTOUR}"
|
||||
|
||||
COPY --from=builder /out /manifests
|
||||
COPY hack/entrypoint.sh /usr/local/bin/entrypoint
|
||||
RUN chmod +x /usr/local/bin/entrypoint
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint"]
|
||||
CMD ["list"]
|
||||
@ -60,7 +60,7 @@ Superset, Trino, GoAlert, GlitchTip, argo-*, otel-*) **существуют об
|
||||
|
||||
| Репозиторий | Зона ответственности | Ключевое содержимое |
|
||||
|---|---|---|
|
||||
| ★ [infra/iac](https://gitlab.sarex.io/infra/iac) ✅ | **Основной GitOps-монорепозиторий (Flux v2).** Декларативное состояние 9 кластеров: инфраструктурные компоненты + прикладные сервисы | `clusters/`, `infrastructure/` (36), `apps/` (37), `inventory.yaml`, `docs/apps/` |
|
||||
| ★ [infra/iac](https://gitlab.sarex.io/infra/iac) ✅ | **Основной GitOps-монорепозиторий (Flux v2).** Декларативное состояние 9 кластеров: инфраструктурные компоненты + прикладные сервисы. Только манифесты — развёртывание контура aero выделено в [infra/aero-deploy](https://gitlab.sarex.io/infra/aero-deploy) | `clusters/`, `infrastructure/` (36), `apps/` (37), `inventory.yaml`, `docs/apps/` |
|
||||
| [infra/terraform](https://gitlab.sarex.io/infra/terraform) ✅ | **Ресурсы Yandex Cloud и Kubernetes**: namespaces, PostgreSQL БД/пользователи, S3-бакеты, Valkey/Redis-пользователи, Kafka-топики, RabbitMQ, k8s-секреты. Единый источник правды — `infrastructure.yaml`, секреты через SOPS | `live/prod` (Terragrunt), `modules/`: `k8s-namespace`, `k8s-secret`, `k8s-secrets`, `kafka-topics-yc`, `rabbitmq`, `yc-database`, `yc-s3`, `yc-valkey-user` |
|
||||
| [infra/terraform-contour](https://gitlab.sarex.io/infra/terraform-contour) ✅ | Тот же подход **для изолированного контура**: namespaces и секреты из Vault | `live/{namespace,vault-secrets}`, `modules/{k8s-namespace,vault-platform-secrets}` |
|
||||
| [infra/terraform-contour-mirror](https://gitlab.sarex.io/infra/terraform-contour-mirror) ✅ | **Зеркало `infra/terraform` для контура** (ветка `contour`, единственная). Тот же README и структура + `Dockerfile` для запуска в закрытом периметре | `live/`, `modules/`, `scripts/`, `Dockerfile` |
|
||||
@ -74,6 +74,7 @@ Superset, Trino, GoAlert, GlitchTip, argo-*, otel-*) **существуют об
|
||||
|
||||
| Репозиторий | Отвечает за |
|
||||
|---|---|
|
||||
| [infra/aero-deploy](https://gitlab.sarex.io/infra/aero-deploy) ✅ | **Изолированный контур aero на одном хосте**: ansible-роли (`base`, `docker`, `sarex_stack`) + `docker-compose.yaml` подложки — k3s тремя контейнерами, gitea как источник правды, Vault, bootstrap FluxCD. Манифесты берёт из `infra/iac` (`flux_src_root`) и синхронизирует в gitea контура. Выделен из `infra/iac` |
|
||||
| [infra/kubespray](https://gitlab.sarex.io/infra/kubespray) ✅ | Форк upstream Kubespray — **развёртывание самих кластеров Kubernetes** на VM |
|
||||
| [infra/k8s-provision](https://gitlab.sarex.io/infra/k8s-provision) ✅ | **Первичная обвязка свежего кластера**: `namespaces`, `cert_manager`, `istio` (+`ISTIO.md`), `ingress`, `dashboard`, `prometheus`, `postgres`/`ya_postgres`, `rabbitmq`, `pvc`, `gitlab`, `teamcity`, `migration` |
|
||||
| [infra/ansible-playbooks](https://gitlab.sarex.io/infra/ansible-playbooks) ✅ | Зонтичный Ansible-репозиторий: каталоги `minio/`, `patroni/` |
|
||||
|
||||
17
README.md
17
README.md
@ -369,6 +369,23 @@ flowchart LR
|
||||
│ └── patches/ # Патчи поверх base
|
||||
```
|
||||
|
||||
### Чего здесь нет: развёртывание контура aero
|
||||
|
||||
Машинерия подъёма самого хоста живёт в отдельном репозитории
|
||||
[`infra/aero-deploy`](https://gitlab.sarex.io/infra/aero-deploy): ansible-роли,
|
||||
`docker-compose.yaml` подложки (k3s, gitea, vault, bootstrap Flux),
|
||||
конфигурация Vault и k3s-манифесты DNS-мостов. Здесь остаётся только то, что
|
||||
раскатывает Flux.
|
||||
|
||||
Связь между репозиториями односторонняя: роль `sarex_stack` пакует отсюда
|
||||
`clusters/aero` и его замыкание (переменная `gitea_sync_paths`) и коммитит в
|
||||
gitea внутри контура, откуда это читает Flux. Путь к этому репозиторию роль
|
||||
берёт из `flux_src_root`, по умолчанию — соседний каталог `../iac`.
|
||||
|
||||
Практическое следствие: **добавили компонент в `clusters/aero/controllers` —
|
||||
допишите его в `gitea_sync_paths`** в `aero-deploy`, иначе kustomize в кластере
|
||||
упадёт на отсутствующем каталоге. Обратной ссылки нет, и забыть об этом легко.
|
||||
|
||||
## Как это работает
|
||||
|
||||
Flux отслеживает директорию `clusters/<имя-кластера>/`. Каждый кластер содержит два Flux Kustomization CRD верхнего уровня:
|
||||
|
||||
@ -85,20 +85,6 @@ spec:
|
||||
_default: regcred
|
||||
labels:
|
||||
monitoring: prometheus
|
||||
volumes:
|
||||
_default:
|
||||
- name: cm-ya-ca-cert
|
||||
mountPath:
|
||||
_default: /etc/ca-certificates/Yandex/
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: kafka-cert
|
||||
items:
|
||||
- key: YandexInternalRootCA.crt
|
||||
path:
|
||||
_default: YandexInternalRootCA.crt
|
||||
|
||||
envs:
|
||||
- name: AMS_SYNC_TOPIC
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: ams-sync
|
||||
resources:
|
||||
- ../base
|
||||
@ -1,11 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: ams-sync
|
||||
resources:
|
||||
- ../base
|
||||
patches:
|
||||
- path: patch.yaml
|
||||
target:
|
||||
kind: HelmRelease
|
||||
name: ams-sync
|
||||
@ -1,55 +0,0 @@
|
||||
---
|
||||
# Патч для контура wb.
|
||||
#
|
||||
# ВНИМАНИЕ: envs — список, kustomize заменяет его ЦЕЛИКОМ (JSON merge patch),
|
||||
# поэтому здесь продублирован весь набор из apps/ams-sync/base/helmrelease.yaml.
|
||||
#
|
||||
# В base image-тег и USER_SERVER_HOST/AUTH_HOST зашиты под другого клиента
|
||||
# (sarex.ugok.lan, образ ams-sync:ugok) — для wb это srx.wb.ru.
|
||||
# secretEnvs (telegram/zitadel/kafka/db) не трогаем — они читаются из обычных
|
||||
# k8s Secret'ов (не vault-agent), которые в wb уже должны быть заведены отдельно.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: ams-sync
|
||||
namespace: ams-sync
|
||||
spec:
|
||||
values:
|
||||
services:
|
||||
backend:
|
||||
envs:
|
||||
- name: AMS_SYNC_TOPIC
|
||||
value:
|
||||
_default: "ams-sync"
|
||||
|
||||
- name: ENVIRONMENT
|
||||
value:
|
||||
_default: "PRODUCTION"
|
||||
|
||||
- name: HOST_ORGANIZATION_ID
|
||||
value:
|
||||
_default: "368536846176636704"
|
||||
|
||||
- name: ALERT_ENABLED
|
||||
value:
|
||||
_default: "False"
|
||||
|
||||
- name: USER_SERVER_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: AUTH_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: VERIFY_USERS
|
||||
value:
|
||||
_default: "True"
|
||||
|
||||
- name: KAFKA_SECURITY_PROTOCOL
|
||||
value:
|
||||
_default: "SSL"
|
||||
|
||||
- name: KAFKA_SASL_MECHANISM
|
||||
value:
|
||||
_default: "SCRAM-SHA-512"
|
||||
@ -1,144 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease по образцу apps/attachments/wb/backend.yaml — base
|
||||
# vault-native, а в ugok Vault не используется. Command/args/serviceAccount
|
||||
# из base не нужны и не нужны были даже вживую: реальный дамп кластера
|
||||
# показывает, что контейнер стартует штатным entrypoint'ом образа без
|
||||
# обёртки и без выделенного serviceAccount, а креды S3 монтируются
|
||||
# напрямую секретом attachments-s3-secret (не генерируются скриптом).
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: attachments
|
||||
namespace: attachments
|
||||
|
||||
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:
|
||||
attachments:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/att9:dev
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: attachments
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: attachments-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: attachments-s3-secret
|
||||
mountPath:
|
||||
_default: /etc/sarex/yc-s3-storage
|
||||
readOnly:
|
||||
_default: true
|
||||
secret:
|
||||
secretName:
|
||||
_default: attachments-s3-secret
|
||||
|
||||
envs:
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
_default: "10"
|
||||
- name: API_ADDRESS
|
||||
value:
|
||||
_default: 0.0.0.0:8000
|
||||
- name: YANDEX_S3_ACCOUNT_PATH
|
||||
value:
|
||||
_default: /etc/sarex/yc-s3-storage/yc-s3-service-account.json
|
||||
- name: BUCKET_NAME
|
||||
value:
|
||||
_default: attachments-storage
|
||||
- name: DATABASE_SSL_MODE
|
||||
value:
|
||||
_default: disable
|
||||
- name: YANDEX_S3_VERIFY
|
||||
value:
|
||||
_default: "false"
|
||||
- name: YANDEX_S3_USE_SSL
|
||||
value:
|
||||
_default: "true"
|
||||
|
||||
secretEnvs:
|
||||
- name: DATABASE_HOST
|
||||
secretName:
|
||||
_default: attachments-postgresql-secret
|
||||
secretKey: host
|
||||
- name: DATABASE_PORT
|
||||
secretName:
|
||||
_default: attachments-postgresql-secret
|
||||
secretKey: port
|
||||
- name: DATABASE_NAME
|
||||
secretName:
|
||||
_default: attachments-postgresql-secret
|
||||
secretKey: database
|
||||
- name: DATABASE_USER
|
||||
secretName:
|
||||
_default: attachments-postgresql-secret
|
||||
secretKey: username
|
||||
- name: DATABASE_PASSWORD
|
||||
secretName:
|
||||
_default: attachments-postgresql-secret
|
||||
secretKey: password
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — см. комментарий в backend.yaml.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: attachments
|
||||
resources:
|
||||
- backend.yaml
|
||||
@ -1,166 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: attachments
|
||||
namespace: attachments
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
attachments:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/att9:dev
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: attachments
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 63m
|
||||
memory:
|
||||
_default: 205Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 164Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: attachments-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: yc-s3
|
||||
mountPath:
|
||||
_default: /etc/sarex/yc-s3-storage
|
||||
readOnly:
|
||||
_default: true
|
||||
secret:
|
||||
secretName:
|
||||
_default: yc-s3
|
||||
|
||||
envs:
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
_default: "10"
|
||||
|
||||
- name: API_ADDRESS
|
||||
value:
|
||||
_default: "0.0.0.0:8000"
|
||||
|
||||
- name: YANDEX_S3_ACCOUNT_PATH
|
||||
value:
|
||||
_default: "/etc/sarex/yc-s3-storage/yc-s3-service-account.json"
|
||||
|
||||
- name: BUCKET_NAME
|
||||
value:
|
||||
_default: "attachments-storage"
|
||||
|
||||
- name: DATABASE_SSL_MODE
|
||||
value:
|
||||
_default: "disable"
|
||||
|
||||
- name: YANDEX_S3_VERIFY
|
||||
value:
|
||||
_default: "false"
|
||||
|
||||
- name: YANDEX_S3_USE_SSL
|
||||
value:
|
||||
_default: "false"
|
||||
|
||||
secretEnvs:
|
||||
- name: DATABASE_HOST
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: DATABASE_PORT
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "port"
|
||||
|
||||
- name: DATABASE_NAME
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "database"
|
||||
|
||||
- name: DATABASE_USER
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: DATABASE_PASSWORD
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,6 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: attachments
|
||||
resources:
|
||||
- backend.yaml
|
||||
@ -1,192 +0,0 @@
|
||||
---
|
||||
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: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
command:
|
||||
_default: ["/bin/sh", "-ec"]
|
||||
args:
|
||||
_default:
|
||||
- |
|
||||
set -a
|
||||
[ -f /vault/secrets/bi-db ] && . /vault/secrets/bi-db
|
||||
[ -f /vault/secrets/bi-jwt ] && . /vault/secrets/bi-jwt
|
||||
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: 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://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"
|
||||
|
||||
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 -}}
|
||||
vault.hashicorp.com/agent-inject-secret-bi-jwt: secrets/data/vault/apps/bi
|
||||
vault.hashicorp.com/agent-inject-template-bi-jwt: |-
|
||||
{{- with secret "secrets/data/vault/apps/bi" -}}
|
||||
SUPERSET_JWT_SECRET={{ index .Data.data "SUPERSET_JWT_SECRET" }}
|
||||
{{- end -}}
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,127 +0,0 @@
|
||||
---
|
||||
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:contour_9cfd1a0b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: bi-frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
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: ""
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bi
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- backend.yaml
|
||||
- frontend.yaml
|
||||
@ -1,191 +0,0 @@
|
||||
---
|
||||
# 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: ""
|
||||
@ -1,96 +0,0 @@
|
||||
---
|
||||
# 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: ""
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — standalone HelmRelease, как apps/bi/ugok.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bi
|
||||
resources:
|
||||
- backend.yaml
|
||||
- frontend.yaml
|
||||
@ -1,191 +0,0 @@
|
||||
---
|
||||
# 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: ""
|
||||
@ -1,96 +0,0 @@
|
||||
---
|
||||
# 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: ""
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — standalone HelmRelease, как apps/bi/ugok.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bi
|
||||
resources:
|
||||
- backend.yaml
|
||||
- frontend.yaml
|
||||
@ -1,66 +0,0 @@
|
||||
---
|
||||
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"
|
||||
@ -1,14 +0,0 @@
|
||||
---
|
||||
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
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: bi
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
security.deckhouse.io/pod-policy: privileged
|
||||
@ -1,194 +0,0 @@
|
||||
---
|
||||
# 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: ""
|
||||
@ -1,95 +0,0 @@
|
||||
---
|
||||
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: ""
|
||||
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — в ugok Vault не используется.
|
||||
# Отдельные standalone HelmRelease с обычными secretEnvs.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bi
|
||||
resources:
|
||||
- backend.yaml
|
||||
- frontend.yaml
|
||||
@ -1,162 +0,0 @@
|
||||
---
|
||||
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_e607dcc6
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: bi-backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 500m
|
||||
memory:
|
||||
_default: 1Gi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: bi-backend-svc
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
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://srx.wb.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:80"
|
||||
- name: EAV_SERVICE_HOST
|
||||
value:
|
||||
_default: "http://eav-service.eav.svc.cluster.local:8000"
|
||||
- name: PM_SERVICE_HOST
|
||||
value:
|
||||
_default: "http://pm-backend-service.pm.svc.cluster.local:8000"
|
||||
- name: SUPERSET_HOST
|
||||
value:
|
||||
_default: "https://bi-srx.wb.ru"
|
||||
- name: SUPERSET_SYSTEM_WIDGETS
|
||||
value:
|
||||
_default: '{"MDR":{"id":"29dea0fc-67c0-472f-a580-da5aca52076a","name":"MDR"}}'
|
||||
- name: SUPERSET_SYSTEM_DASHBOARDS_JSON
|
||||
value:
|
||||
_default: '{"MDR": {"id": "29dea0fc-67c0-472f-a580-da5aca52076a", "name": "MDR"}}'
|
||||
- name: SUPERSET_DOCUMENTATION_URL
|
||||
value:
|
||||
_default: "https://srx.wb.ru/documentations/"
|
||||
|
||||
secretEnvs:
|
||||
- name: DB_USERNAME
|
||||
secretName:
|
||||
_default: pg-secret
|
||||
secretKey: user
|
||||
- name: DB_PASSWORD
|
||||
secretName:
|
||||
_default: pg-secret
|
||||
secretKey: password
|
||||
- name: DB_DATABASE
|
||||
secretName:
|
||||
_default: pg-secret
|
||||
secretKey: database
|
||||
- name: DB_HOST
|
||||
secretName:
|
||||
_default: pg-secret
|
||||
secretKey: host
|
||||
- name: DB_PORT
|
||||
secretName:
|
||||
_default: pg-secret
|
||||
secretKey: port
|
||||
- name: SUPERSET_JWT_SECRET
|
||||
secretName:
|
||||
_default: superset-jwt-secret
|
||||
secretKey: jwt_secret
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,95 +0,0 @@
|
||||
---
|
||||
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:
|
||||
static:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/bi-frontend:contour_9cfd1a0b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: static
|
||||
|
||||
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: static-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bi
|
||||
resources:
|
||||
- backend.yaml
|
||||
- frontend.yaml
|
||||
224
apps/bim/aero/bim-api.yaml
Normal file
224
apps/bim/aero/bim-api.yaml
Normal file
@ -0,0 +1,224 @@
|
||||
---
|
||||
# BIM API — приложение из aero/bimbackend (Python, api + worker).
|
||||
#
|
||||
# ЭТО НЕ ТО ЖЕ, ЧТО apps/bim/base. В base описан platform/bim-backend-v2 —
|
||||
# другой сервис, на Go, с единственным httpserver. Спутать их легко: ОБА
|
||||
# пушат в реестр один и тот же образ bim-api, и различаются только тегами и
|
||||
# содержимым. У bimbackend теги — полный SHA коммита (CI пушит
|
||||
# bim-api:${CI_COMMIT_SHA} с master), у bim-backend-v2 — contour_*.
|
||||
# Поэтому здесь ../base намеренно НЕ подключён.
|
||||
#
|
||||
# Манифесты обычные, а не HelmRelease с universal-chart: в репозитории этот
|
||||
# сервис так и описан (apps/bim/dsinv), своего чарта у него нет, и заводить
|
||||
# его ради контура значило бы поддерживать ещё одну сущность.
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: bim-api-sa
|
||||
namespace: bim
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: bim-api
|
||||
namespace: bim
|
||||
labels:
|
||||
app: bim-api
|
||||
spec:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: bim-api
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: bim-api
|
||||
annotations:
|
||||
# Порт Vault исключён из перехвата sidecar'ом: сам Vault живёт вне
|
||||
# кластера, и заворачивать обращения к нему в mesh незачем.
|
||||
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: bim
|
||||
# БД. Имена переменных — DB_*, как их читает settings.py bimbackend,
|
||||
# а не POSTGRES_*, как у остальных приложений контура.
|
||||
vault.hashicorp.com/agent-inject-secret-bim-db: secrets/data/apps/bim/postgres
|
||||
vault.hashicorp.com/agent-inject-template-bim-db: |-
|
||||
{{- with secret "secrets/data/apps/bim/postgres" -}}
|
||||
DB_HOST={{ index .Data.data "host" }}
|
||||
DB_PORT={{ index .Data.data "port" }}
|
||||
DB_USER={{ index .Data.data "username" }}
|
||||
DB_PASSWORD={{ index .Data.data "password" }}
|
||||
{{- end -}}
|
||||
vault.hashicorp.com/agent-inject-secret-bim-rabbitmq: secrets/data/rabbitmq/apps/bim
|
||||
vault.hashicorp.com/agent-inject-template-bim-rabbitmq: |-
|
||||
{{- with secret "secrets/data/rabbitmq/apps/bim" -}}
|
||||
RABBIT_USER={{ index .Data.data "username" }}
|
||||
RABBIT_PASSWORD={{ index .Data.data "password" }}
|
||||
{{- end -}}
|
||||
vault.hashicorp.com/agent-inject-secret-bim-s3: secrets/data/minio/apps/bim
|
||||
vault.hashicorp.com/agent-inject-template-bim-s3: |-
|
||||
{{- with secret "secrets/data/minio/apps/bim" -}}
|
||||
AWS_ACCESS_KEY_ID={{ index .Data.data "access_key" }}
|
||||
AWS_SECRET_ACCESS_KEY={{ index .Data.data "secret_key" }}
|
||||
{{- end -}}
|
||||
# Публичный ключ JWT отдаётся файлом. Оба флага аутентификации ниже
|
||||
# выключены, то есть читаться он не должен, — но путь в переменной
|
||||
# обязан существовать, иначе рискуем падением при импорте настроек.
|
||||
vault.hashicorp.com/agent-inject-secret-jwt-public: secrets/data/vault/common/rsa_keys
|
||||
vault.hashicorp.com/agent-inject-template-jwt-public: |-
|
||||
{{- with secret "secrets/data/vault/common/rsa_keys" -}}
|
||||
{{ index .Data.data "public_key" }}
|
||||
{{- end -}}
|
||||
spec:
|
||||
serviceAccountName: bim-api-sa
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
containers:
|
||||
- name: bim-api
|
||||
# Тег — полный SHA, как их пушит CI aero/bimbackend с master. Именно
|
||||
# этот образ крутится в dsinv. contour_*-теги у образа bim-api брать
|
||||
# НЕЛЬЗЯ: их собирает bim-backend-v2, это чужое приложение.
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/bim-api:870965d1967cd761965029b0480884ab7fa7c951
|
||||
imagePullPolicy: IfNotPresent
|
||||
# Штатный entrypoint не умеет читать секреты из файлов, поэтому
|
||||
# оборачиваем его: подгружаем отрендеренное vault-агентом и передаём
|
||||
# управление. exec — чтобы приложение осталось процессом с PID 1 и
|
||||
# корректно получало сигналы остановки.
|
||||
command: ["/bin/sh", "-ec"]
|
||||
args:
|
||||
- |
|
||||
set -a
|
||||
[ -f /vault/secrets/bim-db ] && . /vault/secrets/bim-db
|
||||
[ -f /vault/secrets/bim-rabbitmq ] && . /vault/secrets/bim-rabbitmq
|
||||
[ -f /vault/secrets/bim-s3 ] && . /vault/secrets/bim-s3
|
||||
set +a
|
||||
exec ./entrypoint_api.sh
|
||||
ports:
|
||||
- containerPort: 5555
|
||||
name: http
|
||||
protocol: TCP
|
||||
- containerPort: 9000
|
||||
name: prom
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: JWT_PUBLIC_KEY_PATH
|
||||
value: /vault/secrets/jwt-public
|
||||
- name: FEATURE_ENABLE_JWT_AUTH
|
||||
value: "false"
|
||||
- name: FEATURE_ENABLE_SAREX_AUTH
|
||||
value: "false"
|
||||
- name: FEATURE_ENABLE_WORKSPACES
|
||||
value: "true"
|
||||
# Google-хранилища в контуре нет и не будет — флаг выключен.
|
||||
# Том с ключом, который есть в dsinv, здесь не нужен, а сама
|
||||
# переменная ниже нужна, см. комментарий к ней.
|
||||
- name: FEATURE_ENABLE_GCLOUD
|
||||
value: "false"
|
||||
# Значение НЕ УДАЛЯТЬ, даже при выключенном флаге выше. settings.py
|
||||
# делает check_settings(): проходит по всем ключам ENV_FIELDS и
|
||||
# падает на первом же незаданном —
|
||||
# Exception: ENV_VARIABLE NOT SET: GOOGLE_APPLICATION_CREDENTIALS
|
||||
# Флаги проверяются позже, до них дело не доходит. Файла по этому
|
||||
# пути нет и не будет: при FEATURE_ENABLE_GCLOUD=false его никто не
|
||||
# открывает, важно лишь наличие самой переменной.
|
||||
- name: GOOGLE_APPLICATION_CREDENTIALS
|
||||
value: /etc/sarex/google-storage/service_account.json
|
||||
# ВНИМАНИЕ: S3 в этом приложении НЕ НАСТРАИВАЕТСЯ на MinIO.
|
||||
# В storage/s3.py адрес зашит в код:
|
||||
# endpoint_url='https://storage.yandexcloud.net'
|
||||
# переменной окружения для него нет. Из контура он недостижим,
|
||||
# поэтому любые операции с файлами будут падать по таймауту —
|
||||
# это принято осознанно, API и остальные эндпоинты живут.
|
||||
# Починить можно только пересборкой образа с вынесенным endpoint
|
||||
# либо переводом на BIM_CURRENT_STORAGE=local (тип есть в
|
||||
# storage/storages.py).
|
||||
- name: FEATURE_ENABLE_S3
|
||||
value: "true"
|
||||
- name: S3_BUCKET
|
||||
value: sarex-media-storage
|
||||
- name: BIM_CURRENT_STORAGE
|
||||
value: s3
|
||||
- name: AWS_DEFAULT_REGION
|
||||
value: ru-central1
|
||||
- name: FEATURE_ENABLE_PROCESSING
|
||||
value: "1"
|
||||
# Адреса смежных сервисов приведены к именам контура. В dsinv это
|
||||
# workflows-service:8000 и workspaces-service:8000 — таких сервисов
|
||||
# здесь нет, оба называются backend-svc и слушают 80.
|
||||
- name: PROCESSING_API_URL
|
||||
value: http://backend-svc.processing.svc.cluster.local:80/internal
|
||||
- name: PROCESSING_C2M_VERSION
|
||||
value: stable
|
||||
- name: WORKSPACES_API_URL
|
||||
value: http://backend-svc.workspaces.svc.cluster.local:80/internal
|
||||
# Сервиса сравнений в контуре нет и не планируется, флага для его
|
||||
# отключения приложение не предоставляет. Имя оставлено говорящим:
|
||||
# в логах будет видно, куда именно оно не достучалось.
|
||||
- name: COMPARATOR_API_URL
|
||||
value: http://comparator-api-service.comparator.svc.cluster.local/internal
|
||||
- name: BIM_API_EXTERNAL_HOST_SCHEMA
|
||||
value: https
|
||||
- name: BIM_API_EXTERNAL_HOST
|
||||
value: bim.sarex.local.lonsdaleites.ru
|
||||
- name: BIM_API_INTERNAL_HOST_SCHEMA
|
||||
value: http
|
||||
- name: BIM_API_INTERNAL_HOST
|
||||
value: bim-api-service.bim.svc.cluster.local:5555
|
||||
- name: WEBHOOK_URL
|
||||
value: http://bim-api-service.bim.svc.cluster.local:5555
|
||||
# Брокер общий, vhost по умолчанию. В dsinv vhost называется api,
|
||||
# но в контуре отдельных vhost'ов нет — см. secrets/rabbitmq/*.
|
||||
- name: RABBIT_HOST
|
||||
value: rabbitmq.rabbitmq.svc.cluster.local:5672
|
||||
- name: RABBIT_VHOST
|
||||
value: "/"
|
||||
- name: MESH_OPTIMIZER_PATH
|
||||
value: gltfpack
|
||||
- name: DEBUG
|
||||
value: "0"
|
||||
- name: STORAGE_SEGMENT
|
||||
value: sarex-production-storage
|
||||
- name: STORAGE_PROJECT
|
||||
value: sarex-production
|
||||
- name: TMP_DIR
|
||||
value: /tmp
|
||||
- name: prometheus_multiproc_dir
|
||||
value: /tmp
|
||||
- name: BUNDLE_VERSION
|
||||
value: v1
|
||||
- name: DISABLE_INSTANCING
|
||||
value: "0"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 200Mi
|
||||
volumeMounts:
|
||||
- mountPath: /tmp
|
||||
name: tmp-volume
|
||||
volumes:
|
||||
- name: tmp-volume
|
||||
emptyDir: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: bim-api-service
|
||||
namespace: bim
|
||||
labels:
|
||||
app: bim-api
|
||||
spec:
|
||||
# ClusterIP, а не NodePort с прибитым портом 31352, как в dsinv: наружу
|
||||
# сервис выходит через общий Gateway и VirtualService контура, отдельный
|
||||
# порт на нодах ему не нужен.
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: http
|
||||
port: 5555
|
||||
targetPort: 5555
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: bim-api
|
||||
157
apps/bim/aero/bim-worker.yaml
Normal file
157
apps/bim/aero/bim-worker.yaml
Normal file
@ -0,0 +1,157 @@
|
||||
---
|
||||
# Воркер bimbackend. Крутит тот же образ и те же настройки, что api, —
|
||||
# отличается только точкой входа (entrypoint_worker.sh) и отсутствием портов.
|
||||
# Обоснования переменных не дублирую, они в bim-api.yaml.
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: bim-worker-sa
|
||||
namespace: bim
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: bim-worker
|
||||
namespace: bim
|
||||
labels:
|
||||
app: bim-worker
|
||||
spec:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: bim-worker
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: bim-worker
|
||||
annotations:
|
||||
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: bim
|
||||
vault.hashicorp.com/agent-inject-secret-bim-db: secrets/data/apps/bim/postgres
|
||||
vault.hashicorp.com/agent-inject-template-bim-db: |-
|
||||
{{- with secret "secrets/data/apps/bim/postgres" -}}
|
||||
DB_HOST={{ index .Data.data "host" }}
|
||||
DB_PORT={{ index .Data.data "port" }}
|
||||
DB_USER={{ index .Data.data "username" }}
|
||||
DB_PASSWORD={{ index .Data.data "password" }}
|
||||
{{- end -}}
|
||||
vault.hashicorp.com/agent-inject-secret-bim-rabbitmq: secrets/data/rabbitmq/apps/bim
|
||||
vault.hashicorp.com/agent-inject-template-bim-rabbitmq: |-
|
||||
{{- with secret "secrets/data/rabbitmq/apps/bim" -}}
|
||||
RABBIT_USER={{ index .Data.data "username" }}
|
||||
RABBIT_PASSWORD={{ index .Data.data "password" }}
|
||||
{{- end -}}
|
||||
vault.hashicorp.com/agent-inject-secret-bim-s3: secrets/data/minio/apps/bim
|
||||
vault.hashicorp.com/agent-inject-template-bim-s3: |-
|
||||
{{- with secret "secrets/data/minio/apps/bim" -}}
|
||||
AWS_ACCESS_KEY_ID={{ index .Data.data "access_key" }}
|
||||
AWS_SECRET_ACCESS_KEY={{ index .Data.data "secret_key" }}
|
||||
{{- end -}}
|
||||
vault.hashicorp.com/agent-inject-secret-jwt-public: secrets/data/vault/common/rsa_keys
|
||||
vault.hashicorp.com/agent-inject-template-jwt-public: |-
|
||||
{{- with secret "secrets/data/vault/common/rsa_keys" -}}
|
||||
{{ index .Data.data "public_key" }}
|
||||
{{- end -}}
|
||||
spec:
|
||||
serviceAccountName: bim-worker-sa
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
containers:
|
||||
- name: bim-worker
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/bim-api:870965d1967cd761965029b0480884ab7fa7c951
|
||||
imagePullPolicy: IfNotPresent
|
||||
command: ["/bin/sh", "-ec"]
|
||||
args:
|
||||
- |
|
||||
set -a
|
||||
[ -f /vault/secrets/bim-db ] && . /vault/secrets/bim-db
|
||||
[ -f /vault/secrets/bim-rabbitmq ] && . /vault/secrets/bim-rabbitmq
|
||||
[ -f /vault/secrets/bim-s3 ] && . /vault/secrets/bim-s3
|
||||
set +a
|
||||
exec ./entrypoint_worker.sh
|
||||
env:
|
||||
- name: JWT_PUBLIC_KEY_PATH
|
||||
value: /vault/secrets/jwt-public
|
||||
- name: FEATURE_ENABLE_JWT_AUTH
|
||||
value: "false"
|
||||
- name: FEATURE_ENABLE_SAREX_AUTH
|
||||
value: "false"
|
||||
- name: FEATURE_ENABLE_WORKSPACES
|
||||
value: "true"
|
||||
- name: FEATURE_ENABLE_GCLOUD
|
||||
value: "false"
|
||||
# Значение НЕ УДАЛЯТЬ, даже при выключенном флаге выше. settings.py
|
||||
# делает check_settings(): проходит по всем ключам ENV_FIELDS и
|
||||
# падает на первом же незаданном —
|
||||
# Exception: ENV_VARIABLE NOT SET: GOOGLE_APPLICATION_CREDENTIALS
|
||||
# Флаги проверяются позже, до них дело не доходит. Файла по этому
|
||||
# пути нет и не будет: при FEATURE_ENABLE_GCLOUD=false его никто не
|
||||
# открывает, важно лишь наличие самой переменной.
|
||||
- name: GOOGLE_APPLICATION_CREDENTIALS
|
||||
value: /etc/sarex/google-storage/service_account.json
|
||||
- name: FEATURE_ENABLE_S3
|
||||
value: "true"
|
||||
- name: S3_BUCKET
|
||||
value: sarex-media-storage
|
||||
- name: BIM_CURRENT_STORAGE
|
||||
value: s3
|
||||
- name: AWS_DEFAULT_REGION
|
||||
value: ru-central1
|
||||
- name: FEATURE_ENABLE_PROCESSING
|
||||
value: "1"
|
||||
- name: PROCESSING_API_URL
|
||||
value: http://backend-svc.processing.svc.cluster.local:80/internal
|
||||
- name: PROCESSING_C2M_VERSION
|
||||
value: stable
|
||||
- name: WORKSPACES_API_URL
|
||||
value: http://backend-svc.workspaces.svc.cluster.local:80/internal
|
||||
- name: COMPARATOR_API_URL
|
||||
value: http://comparator-api-service.comparator.svc.cluster.local/internal
|
||||
- name: BIM_API_EXTERNAL_HOST_SCHEMA
|
||||
value: https
|
||||
- name: BIM_API_EXTERNAL_HOST
|
||||
value: bim.sarex.local.lonsdaleites.ru
|
||||
- name: BIM_API_INTERNAL_HOST_SCHEMA
|
||||
value: http
|
||||
- name: BIM_API_INTERNAL_HOST
|
||||
value: bim-api-service.bim.svc.cluster.local:5555
|
||||
- name: WEBHOOK_URL
|
||||
value: http://bim-api-service.bim.svc.cluster.local:5555
|
||||
# В dsinv у воркера здесь rabbitmq-service.bim:5672 — брокера в
|
||||
# namespace bim нет ни там, ни здесь; у api в том же файле адрес
|
||||
# другой и правильный. Ставим общий брокер контура.
|
||||
- name: RABBIT_HOST
|
||||
value: rabbitmq.rabbitmq.svc.cluster.local:5672
|
||||
- name: RABBIT_VHOST
|
||||
value: "/"
|
||||
- name: MESH_OPTIMIZER_PATH
|
||||
value: gltfpack
|
||||
- name: DEBUG
|
||||
value: "0"
|
||||
- name: STORAGE_SEGMENT
|
||||
value: sarex-production-storage
|
||||
- name: STORAGE_PROJECT
|
||||
value: sarex-production
|
||||
- name: TMP_DIR
|
||||
value: /tmp
|
||||
- name: prometheus_multiproc_dir
|
||||
value: /tmp
|
||||
- name: BUNDLE_VERSION
|
||||
value: v1
|
||||
- name: DISABLE_INSTANCING
|
||||
value: "0"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 25m
|
||||
memory: 200Mi
|
||||
volumeMounts:
|
||||
- mountPath: /tmp
|
||||
name: tmp-volume
|
||||
volumes:
|
||||
- name: tmp-volume
|
||||
emptyDir: {}
|
||||
11
apps/bim/aero/kustomization.yaml
Normal file
11
apps/bim/aero/kustomization.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bim
|
||||
# ../base НЕ подключён намеренно: там описан platform/bim-backend-v2 — другое
|
||||
# приложение, которое разворачивать в контуре не нужно. Подробности в шапке
|
||||
# bim-api.yaml.
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- bim-api.yaml
|
||||
- bim-worker.yaml
|
||||
@ -2,6 +2,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: bi
|
||||
name: bim
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/bim-backend-v2:donstroi1
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/bim-backend-v2:prod_b0bd750b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
|
||||
@ -1,228 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease — base vault-native, в ugok Vault не используется.
|
||||
# Образ оставлен как был в ugok (donstroi1 в wb — похоже на билд другого
|
||||
# клиента, не переносим — см. предыдущее решение).
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: bim
|
||||
|
||||
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/bim-backend-v2:prod_2bde8e0a
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 100Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled:
|
||||
_default: true
|
||||
type:
|
||||
_default: httpGet
|
||||
httpGet:
|
||||
path:
|
||||
_default: /ping
|
||||
port:
|
||||
_default: 8000
|
||||
initialDelaySeconds:
|
||||
_default: 10
|
||||
periodSeconds:
|
||||
_default: 60
|
||||
failureThreshold:
|
||||
_default: 10
|
||||
readiness:
|
||||
enabled:
|
||||
_default: true
|
||||
type:
|
||||
_default: httpGet
|
||||
httpGet:
|
||||
path:
|
||||
_default: /ping
|
||||
port:
|
||||
_default: 8000
|
||||
initialDelaySeconds:
|
||||
_default: 5
|
||||
periodSeconds:
|
||||
_default: 5
|
||||
failureThreshold:
|
||||
_default: 20
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend-svc
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
envs:
|
||||
- name: LAST_MASTER_BIM
|
||||
value:
|
||||
_default: "100000"
|
||||
- name: LAST_SLAVE_1_BIM
|
||||
value:
|
||||
_default: "94015"
|
||||
- name: LAST_MASTER_BIM_V3
|
||||
value:
|
||||
_default: "100000"
|
||||
- name: LAST_SLAVE_1_BIM_V3
|
||||
value:
|
||||
_default: "0"
|
||||
- name: DB_CERT_PATH_2
|
||||
value:
|
||||
_default: /root/yandex_pg.pem
|
||||
- name: DB_CERT_PATH_3
|
||||
value:
|
||||
_default: /root/yandex_pg.pem
|
||||
- name: DB_CERT_PATH_4
|
||||
value:
|
||||
_default: /root/yandex_pg.pem
|
||||
- name: POSTGRES_ADDRESS
|
||||
value:
|
||||
_default: postgresql-service
|
||||
- name: POSTGRES_ADDRESS_2
|
||||
value:
|
||||
_default: postgresql-service
|
||||
- name: POSTGRES_ADDRESS_3
|
||||
value:
|
||||
_default: postgresql-service
|
||||
- name: POSTGRES_ADDRESS_4
|
||||
value:
|
||||
_default: postgresql-service
|
||||
- name: POSTGRES_PORT
|
||||
value:
|
||||
_default: "5432"
|
||||
- name: POSTGRES_PORT_2
|
||||
value:
|
||||
_default: "5432"
|
||||
- name: POSTGRES_PORT_3
|
||||
value:
|
||||
_default: "5432"
|
||||
- name: POSTGRES_PORT_4
|
||||
value:
|
||||
_default: "5432"
|
||||
- name: POSTGRES_DB
|
||||
value:
|
||||
_default: bim_db
|
||||
- name: POSTGRES_DB_2
|
||||
value:
|
||||
_default: bim_db
|
||||
- name: POSTGRES_DB_3
|
||||
value:
|
||||
_default: bim_db
|
||||
- name: POSTGRES_DB_4
|
||||
value:
|
||||
_default: bim_db
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
_default: "30"
|
||||
- name: API_ADDRESS
|
||||
value:
|
||||
_default: 0.0.0.0:8000
|
||||
- name: DJANGO_HOST
|
||||
value:
|
||||
_default: http://backend.django.svc.cluster.local:8000
|
||||
- name: ENABLE_SQL_QUERY
|
||||
value:
|
||||
_default: "0"
|
||||
- name: ENABLE_SSL
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
secretEnvs:
|
||||
- name: POSTGRES_USER
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: username
|
||||
- name: POSTGRES_PASSWORD
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: password
|
||||
- name: POSTGRES_USER_2
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: username
|
||||
- name: POSTGRES_PASSWORD_2
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: password
|
||||
- name: POSTGRES_USER_3
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: username
|
||||
- name: POSTGRES_PASSWORD_3
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: password
|
||||
- name: POSTGRES_USER_4
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: username
|
||||
- name: POSTGRES_PASSWORD_4
|
||||
secretName:
|
||||
_default: bim-postgresql-secret
|
||||
secretKey: password
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — см. комментарий в backend.yaml.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: bim
|
||||
resources:
|
||||
- backend.yaml
|
||||
@ -1,234 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: bim
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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: cr.yandex/crp3ccidau046kdj8g9q/bim-backend-v2:donstroi1
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 51Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 34Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
envs:
|
||||
- name: LAST_MASTER_BIM
|
||||
value:
|
||||
_default: "100000"
|
||||
|
||||
- name: LAST_MASTER_BIM_V3
|
||||
value:
|
||||
_default: "100000"
|
||||
|
||||
- name: LAST_SLAVE_1_BIM
|
||||
value:
|
||||
_default: "1000000"
|
||||
|
||||
- name: POSTGRES_ADDRESS
|
||||
value:
|
||||
_default: "sarex-vpsql-01.xc.wb.ru"
|
||||
|
||||
- name: POSTGRES_PORT
|
||||
value:
|
||||
_default: "6432"
|
||||
|
||||
- name: POSTGRES_DB
|
||||
value:
|
||||
_default: "bim_db"
|
||||
|
||||
- name: DB_CERT_PATH_2
|
||||
value:
|
||||
_default: "/root/yandex_pg.pem"
|
||||
|
||||
- name: POSTGRES_ADDRESS_2
|
||||
value:
|
||||
_default: "sarex-vpsql-01.xc.wb.ru"
|
||||
|
||||
- name: POSTGRES_PORT_2
|
||||
value:
|
||||
_default: "6432"
|
||||
|
||||
- name: POSTGRES_DB_2
|
||||
value:
|
||||
_default: "bim_db"
|
||||
|
||||
- name: DB_CERT_PATH_3
|
||||
value:
|
||||
_default: "/root/yandex_pg.pem"
|
||||
|
||||
- name: POSTGRES_ADDRESS_3
|
||||
value:
|
||||
_default: "sarex-vpsql-01.xc.wb.ru"
|
||||
|
||||
- name: POSTGRES_PORT_3
|
||||
value:
|
||||
_default: "6432"
|
||||
|
||||
- name: POSTGRES_DB_3
|
||||
value:
|
||||
_default: "bim_db"
|
||||
|
||||
- name: DB_CERT_PATH_4
|
||||
value:
|
||||
_default: "/root/yandex_pg.pem"
|
||||
|
||||
- name: POSTGRES_ADDRESS_4
|
||||
value:
|
||||
_default: "sarex-vpsql-01.xc.wb.ru"
|
||||
|
||||
- name: POSTGRES_PORT_4
|
||||
value:
|
||||
_default: "6432"
|
||||
|
||||
- name: POSTGRES_DB_4
|
||||
value:
|
||||
_default: "bim_db"
|
||||
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
_default: "30"
|
||||
|
||||
- name: API_ADDRESS
|
||||
value:
|
||||
_default: "0.0.0.0:8000"
|
||||
|
||||
- name: DJANGO_HOST
|
||||
value:
|
||||
_default: "http://backend.django.svc.cluster.local:8000"
|
||||
|
||||
- name: ENABLE_SQL_QUERY
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: ENABLE_SSL
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
secretEnvs:
|
||||
- name: POSTGRES_USER
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: POSTGRES_PASSWORD
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: POSTGRES_USER_2
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: POSTGRES_PASSWORD_2
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: POSTGRES_USER_3
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: POSTGRES_PASSWORD_3
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: POSTGRES_USER_4
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: POSTGRES_PASSWORD_4
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
File diff suppressed because it is too large
Load Diff
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/checklists-backend:production_3d148228
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/checklists-backend:preprod_b1980fc6
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
|
||||
@ -1,134 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease по образцу apps/checklists/wb/backend.yaml — base
|
||||
# vault-native, в ugok Vault не используется.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: checklists
|
||||
namespace: checklists
|
||||
|
||||
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:
|
||||
checklists:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/checklists-backend:production_3d148228
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: checklists-backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 128Mi
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: checklists-backend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
envs:
|
||||
- name: HTTP_APP_HOST
|
||||
value:
|
||||
_default: "0.0.0.0"
|
||||
- name: HTTP_APP_PORT
|
||||
value:
|
||||
_default: "8000"
|
||||
- name: HTTP_APP_ROOT_PATH
|
||||
value:
|
||||
_default: /checklists
|
||||
- name: HTTP_APP_WORKERS
|
||||
value:
|
||||
_default: "8"
|
||||
- name: HTTP_APP_ADMIN_ENABLE
|
||||
value:
|
||||
_default: "true"
|
||||
- name: JWT_AUTH_ENABLE
|
||||
value:
|
||||
_default: "true"
|
||||
- name: DEBUG
|
||||
value:
|
||||
_default: "false"
|
||||
|
||||
secretEnvs:
|
||||
- name: DATABASE_HOST
|
||||
secretName:
|
||||
_default: checklists-postgresql-secret
|
||||
secretKey: hostname
|
||||
- name: DATABASE_PORT
|
||||
secretName:
|
||||
_default: checklists-postgresql-secret
|
||||
secretKey: port
|
||||
- name: DATABASE_NAME
|
||||
secretName:
|
||||
_default: checklists-postgresql-secret
|
||||
secretKey: database
|
||||
- name: DATABASE_USER
|
||||
secretName:
|
||||
_default: checklists-postgresql-secret
|
||||
secretKey: username
|
||||
- name: DATABASE_PASSWORD
|
||||
secretName:
|
||||
_default: checklists-postgresql-secret
|
||||
secretKey: password
|
||||
- name: JWT_AUTH_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: checklists-public-key
|
||||
secretKey: key
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — см. комментарий в backend.yaml.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: checklists
|
||||
resources:
|
||||
- backend.yaml
|
||||
@ -1,157 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: checklists-backend
|
||||
namespace: checklists
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
checklists-backend:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/checklists-backend:production_3d148228
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: checklists-backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 1023Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 818Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: checklists-backend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
envs:
|
||||
- name: HTTP_APP_HOST
|
||||
value:
|
||||
_default: "0.0.0.0"
|
||||
|
||||
- name: HTTP_APP_PORT
|
||||
value:
|
||||
_default: "8000"
|
||||
|
||||
- name: HTTP_APP_ROOT_PATH
|
||||
value:
|
||||
_default: "/checklists"
|
||||
|
||||
- name: HTTP_APP_WORKERS
|
||||
value:
|
||||
_default: "8"
|
||||
|
||||
- name: HTTP_APP_ADMIN_ENABLE
|
||||
value:
|
||||
_default: "true"
|
||||
|
||||
- name: DATABASE_HOST
|
||||
value:
|
||||
_default: "sarex-vpsql-01.xc.wb.ru"
|
||||
|
||||
- name: DATABASE_PORT
|
||||
value:
|
||||
_default: "5432"
|
||||
|
||||
- name: DATABASE_NAME
|
||||
value:
|
||||
_default: "checklists_db"
|
||||
|
||||
- name: JWT_AUTH_ENABLE
|
||||
value:
|
||||
_default: "true"
|
||||
|
||||
- name: DEBUG
|
||||
value:
|
||||
_default: "false"
|
||||
|
||||
secretEnvs:
|
||||
- name: DATABASE_USER
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "user"
|
||||
|
||||
- name: DATABASE_PASSWORD
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: JWT_AUTH_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: "jwt-secret"
|
||||
secretKey: "public-key"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,4 +1,3 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
@ -31,7 +30,7 @@ spec:
|
||||
env: _default
|
||||
|
||||
services:
|
||||
drawings-api:
|
||||
backend:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
@ -48,21 +47,12 @@ spec:
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
stage: 1
|
||||
preprod: 3
|
||||
production: 3
|
||||
|
||||
port:
|
||||
_default: 8080
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
_default: 8000
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
@ -80,10 +70,10 @@ spec:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8080
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
@ -92,16 +82,18 @@ spec:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
_default: regcred
|
||||
labels:
|
||||
monitoring: prometheus
|
||||
|
||||
envs:
|
||||
- name: POSTGRES_ADDRESS
|
||||
value:
|
||||
_default: "sarex-vpsql-01.xc.wb.ru:5432"
|
||||
_default: "192.168.2.45:5432"
|
||||
|
||||
- name: POSTGRES_DB
|
||||
value:
|
||||
_default: "drawings_db"
|
||||
_default: "drawings"
|
||||
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
@ -114,7 +106,6 @@ spec:
|
||||
- name: ENABLE_SSL
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
secretEnvs:
|
||||
- name: POSTGRES_USER
|
||||
secretName:
|
||||
@ -129,4 +120,4 @@ spec:
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
owner: ""
|
||||
@ -3,4 +3,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: drawings
|
||||
resources:
|
||||
- backend.yaml
|
||||
- backend.yaml
|
||||
@ -1,228 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease — base vault-native, в ugok Vault не используется.
|
||||
# volumes (tasks-execution-config) убраны: в живом дампе кластера у backend
|
||||
# нет volumeMounts вообще, ни такого ConfigMap'а в namespace.
|
||||
# Образ оставлен как в ugok (в wb — другое имя репозитория образа целиком,
|
||||
# не просто тег, см. предыдущее решение по этому приложению).
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: comparisons
|
||||
|
||||
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: cr.yandex/crp3ccidau046kdj8g9q/comparisons-backend:c864f102a3a476b9a80658148da2b3f7acb772ac
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 100Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled:
|
||||
_default: true
|
||||
type:
|
||||
_default: httpGet
|
||||
httpGet:
|
||||
path:
|
||||
_default: /ping
|
||||
port:
|
||||
_default: 8000
|
||||
initialDelaySeconds:
|
||||
_default: 10
|
||||
periodSeconds:
|
||||
_default: 60
|
||||
failureThreshold:
|
||||
_default: 10
|
||||
readiness:
|
||||
enabled:
|
||||
_default: true
|
||||
type:
|
||||
_default: httpGet
|
||||
httpGet:
|
||||
path:
|
||||
_default: /ping
|
||||
port:
|
||||
_default: 8000
|
||||
initialDelaySeconds:
|
||||
_default: 5
|
||||
periodSeconds:
|
||||
_default: 5
|
||||
failureThreshold:
|
||||
_default: 20
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
envs:
|
||||
- name: HTTP_PORT
|
||||
value:
|
||||
_default: "8080"
|
||||
- name: LAST_MASTER_BIM
|
||||
value:
|
||||
_default: "100_000"
|
||||
- name: APP_NAME
|
||||
value:
|
||||
_default: comparisons-api-v2
|
||||
- name: APP_VERSION
|
||||
value:
|
||||
_default: 0.0.1
|
||||
- name: LOGGER_LOG_LEVEL
|
||||
value:
|
||||
_default: info
|
||||
- name: DATABASE_HOST
|
||||
value:
|
||||
_default: postgres-service
|
||||
- name: DATABASE_PORT
|
||||
value:
|
||||
_default: "5432"
|
||||
- name: DATABASE_NAME
|
||||
value:
|
||||
_default: postgres
|
||||
- name: DATABASE_DB
|
||||
value:
|
||||
_default: comparisons_db
|
||||
- name: API_ADDRESS
|
||||
value:
|
||||
_default: 0.0.0.0:8080
|
||||
- name: API_ADDRESS_FILE
|
||||
value:
|
||||
_default: 0.0.0.0:8080
|
||||
- name: ENABLE_SQL_QUERY
|
||||
value:
|
||||
_default: "0"
|
||||
- name: DOCUMENTATIONS_INTERNAL_HOST
|
||||
value:
|
||||
_default: http://documentations-api.documentations.svc.cluster.local:8080
|
||||
- name: DOCUMENTATIONS_EXTERNAL_HOST
|
||||
value:
|
||||
_default: http://documentations-api.documentations.svc.cluster.local:8080/
|
||||
- name: DOCUMENTATION_URL
|
||||
value:
|
||||
_default: http://documentations-api.documentations.svc.cluster.local:8080/
|
||||
- name: DOCUMENTATION_FILESTREAM_URL
|
||||
value:
|
||||
_default: http://documentations-filestream.documentations.svc.cluster.local:8080/
|
||||
- name: WORKFLOWS_HOST
|
||||
value:
|
||||
_default: http://workflows-api-service.workflow.svc.cluster.local:8000/
|
||||
- name: EAV_HOST
|
||||
value:
|
||||
_default: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: WORKSPACES_HOST
|
||||
value:
|
||||
_default: http://backend-svc.workspaces.svc.cluster.local:8000/
|
||||
- name: COMPARISON_URL
|
||||
value:
|
||||
_default: http://backend-service.comparisons.svc.cluster.local:8000/
|
||||
- name: WORKFLOWS_IMAGE_VERSION
|
||||
value:
|
||||
_default: master
|
||||
- name: EXTERNAL_DOCUMENTATION_URL
|
||||
value:
|
||||
_default: http://documentations-api.documentations.svc.cluster.local:8080/
|
||||
- name: WORKFLOWS_BIMV2_INTERNAL_HOST
|
||||
value:
|
||||
_default: http://backend-svc.bim.svc.cluster.local:8000/
|
||||
- name: ENABLE_SSL
|
||||
value:
|
||||
_default: "0"
|
||||
- name: WORKFLOWS_DJANGO_HOST
|
||||
value:
|
||||
_default: http://backend.django.svc.cluster.local:8000
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
_default: "10"
|
||||
- name: LAST_SLAVE_1_BIM
|
||||
value:
|
||||
_default: "94015"
|
||||
- name: LAST_SLAVE_2_BIM
|
||||
value:
|
||||
_default: "135771"
|
||||
- name: ABAP_FIXED_CONC
|
||||
value:
|
||||
_default: "0"
|
||||
- name: WORKFLOWS_CONFIG_FILEPATH
|
||||
value:
|
||||
_default: /etc/app/tasks-execution-config.json
|
||||
|
||||
secretEnvs:
|
||||
- name: DATABASE_USER
|
||||
secretName:
|
||||
_default: comparisons-postgresql-secret
|
||||
secretKey: username
|
||||
- name: DATABASE_PASSWORD
|
||||
secretName:
|
||||
_default: comparisons-postgresql-secret
|
||||
secretKey: password
|
||||
- name: AUTH_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: public-key
|
||||
secretKey: key
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,88 +0,0 @@
|
||||
---
|
||||
# volumes (nginx-configmap) убраны: в живом дампе кластера у frontend нет
|
||||
# volumeMounts и такого ConfigMap'а в namespace.
|
||||
# Образ оставлен как в ugok (в wb — другое имя репозитория образа целиком).
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: comparisons
|
||||
|
||||
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/comparisons-frontend-static:69d50235fdc8fd654ae63308e23fc27f28e9cd99_relative
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 100Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: frontend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (backend vault-native) — см. комментарии в файлах.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: comparisons
|
||||
resources:
|
||||
- backend.yaml
|
||||
- frontend.yaml
|
||||
@ -1,94 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: comparisons
|
||||
spec:
|
||||
values:
|
||||
services:
|
||||
backend:
|
||||
envs:
|
||||
- name: APP_NAME
|
||||
value:
|
||||
_default: "comparisons"
|
||||
|
||||
- name: APP_VERSION
|
||||
value:
|
||||
_default: "0.0.1"
|
||||
|
||||
- name: LOGGER_LOG_LEVEL
|
||||
value:
|
||||
_default: "info"
|
||||
|
||||
- name: DATABASE_NAME
|
||||
value:
|
||||
_default: "postgres"
|
||||
|
||||
- name: ENABLE_SSL
|
||||
value:
|
||||
_default: "false"
|
||||
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value:
|
||||
_default: "10"
|
||||
|
||||
- name: HTTP_PORT
|
||||
value:
|
||||
_default: "8000"
|
||||
|
||||
- name: DOCUMENTATIONS_INTERNAL_HOST
|
||||
value:
|
||||
_default: "http://documentations-service.documentations"
|
||||
|
||||
- name: DOCUMENTATIONS_EXTERNAL_HOST
|
||||
value:
|
||||
_default: "https://lk.srx.wb.ru:30443/documentations"
|
||||
|
||||
- name: DOCUMENTATION_FILESTREAM_URL
|
||||
value:
|
||||
_default: "http://backend-filestream-svc.documentations.svc.cluster.local/"
|
||||
|
||||
- name: WORKFLOWS_HOST
|
||||
value:
|
||||
_default: "http://workflows-service.workflow"
|
||||
|
||||
- name: WORKFLOWS_IMAGE_VERSION
|
||||
value:
|
||||
_default: "master"
|
||||
|
||||
- name: WORKFLOWS_DJANGO_HOST
|
||||
value:
|
||||
_default: "https://lk.srx.wb.ru:30443"
|
||||
|
||||
- name: WORKFLOWS_BIMV2_INTERNAL_HOST
|
||||
value:
|
||||
_default: "http://bim-backend-v2-service.bim-api"
|
||||
|
||||
- name: WORKSPACES_HOST
|
||||
value:
|
||||
_default: "http://workspaces-service.workspaces"
|
||||
|
||||
- name: EAV_HOST
|
||||
value:
|
||||
_default: "https://lk.srx.wb.ru:30443/eav"
|
||||
|
||||
- name: LAST_MASTER_BIM
|
||||
value:
|
||||
_default: "36311"
|
||||
|
||||
- name: LAST_SLAVE_1_BIM
|
||||
value:
|
||||
_default: "94015"
|
||||
|
||||
- name: LAST_SLAVE_2_BIM
|
||||
value:
|
||||
_default: "135771"
|
||||
|
||||
- name: ABAP_FIXED_CONC
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: WORKFLOWS_CONFIG_FILEPATH
|
||||
value:
|
||||
_default: "/etc/app/tasks-execution-config.json"
|
||||
@ -1,11 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: comparisons
|
||||
resources:
|
||||
- ../base
|
||||
patches:
|
||||
- path: backend.yaml
|
||||
target:
|
||||
kind: HelmRelease
|
||||
name: backend
|
||||
@ -1,94 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease по образцу apps/contracts/wb/backend.yaml — base
|
||||
# vault-native, в ugok Vault не используется.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: contracts
|
||||
namespace: contracts
|
||||
|
||||
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:
|
||||
contracts:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/contracts:prod_d3bbd9fc
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8080
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend-svc
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8080
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
secretEnvs:
|
||||
- name: DB_URL
|
||||
secretName:
|
||||
_default: contracts-postgresql-secret
|
||||
secretKey: url
|
||||
- name: PUBLIC_KEY
|
||||
secretName:
|
||||
_default: contracts-public-key
|
||||
secretKey: key
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (vault-native) — см. комментарий в backend.yaml.
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: contracts
|
||||
resources:
|
||||
- backend.yaml
|
||||
@ -1,111 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: contracts
|
||||
namespace: contracts
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
contracts:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/contracts:prod_d3bbd9fc
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: contracts
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8080
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: contracts-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8080
|
||||
|
||||
targetPort:
|
||||
_default: 8080
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
secretEnvs:
|
||||
- name: DB_URL
|
||||
secretName:
|
||||
_default: "ya-pg-secret"
|
||||
secretKey: "db_url"
|
||||
|
||||
- name: PUBLIC_KEY
|
||||
secretName:
|
||||
_default: "public-key"
|
||||
secretKey: "key"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,11 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: control-interface
|
||||
resources:
|
||||
- ../base
|
||||
patches:
|
||||
- path: patch.yaml
|
||||
target:
|
||||
kind: HelmRelease
|
||||
name: frontend
|
||||
@ -1,13 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: control-interface
|
||||
spec:
|
||||
values:
|
||||
services:
|
||||
frontend:
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/srx-admin:prod_638c3442
|
||||
@ -1,9 +1,8 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: documentation-frontend-static
|
||||
namespace: documentations
|
||||
name: measurements
|
||||
namespace: measurements
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
@ -25,18 +24,20 @@ spec:
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 3
|
||||
driftDetection:
|
||||
mode: enabled
|
||||
|
||||
values:
|
||||
global:
|
||||
env: _default
|
||||
|
||||
services:
|
||||
documentation-frontend-static:
|
||||
backend:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/documentation-frontend-app:brusnika_e5f99d7c
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/documentations:prod_5904312b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
@ -44,25 +45,16 @@ spec:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: documentation-frontend-static
|
||||
_default: measurements
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
stage: 1
|
||||
preprod: 3
|
||||
production: 3
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
_default: 8080
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
@ -74,16 +66,16 @@ spec:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: documentation-frontend-static-service
|
||||
_default: measurements-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
@ -92,7 +84,16 @@ spec:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
_default: regcred
|
||||
|
||||
|
||||
labels:
|
||||
monitoring: prometheus
|
||||
secretEnvs:
|
||||
- name: S3_JSON_SETTINGS
|
||||
secretName:
|
||||
_default: "s3-json-settings"
|
||||
secretKey: "S3_JSON_SETTINGS"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
@ -1,6 +1,6 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: contracts
|
||||
namespace: measurements
|
||||
resources:
|
||||
- backend.yaml
|
||||
@ -1,11 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: cross-section
|
||||
resources:
|
||||
- ../base
|
||||
patches:
|
||||
- path: patch.yaml
|
||||
target:
|
||||
kind: HelmRelease
|
||||
name: cross-section-static
|
||||
@ -1,15 +0,0 @@
|
||||
---
|
||||
# В ugok образ реально называется cross-section-static (не cross-section-app,
|
||||
# как в base) — берём как есть из дампа кластера.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: cross-section-static
|
||||
namespace: cross-section
|
||||
spec:
|
||||
values:
|
||||
services:
|
||||
frontend:
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/cross-section-static:988a872bfe72ca29ffa6a43e074b94118e9e655a
|
||||
@ -101,7 +101,6 @@ Module Federation) конфигурируется отдельно на этап
|
||||
| `JWT_PUBLIC_KEY` | string | — | Публичный RSA-ключ проверки |
|
||||
| `JWT_KID` | string | `None` | `kid` в заголовке токена (используется для межсервисных вызовов) |
|
||||
| `DJANGO_JWT_SECRET` | string | `Froom too much love of living` | Легаси-секрет |
|
||||
| `SERVER_SUPERSET_JWT_SECRET` | string | `""` | hmac-секрет для embedded superset guest token. В контуре wb берётся из k8s-секрета `superset-jwt-secret`, ключ `jwt_secret` |
|
||||
|
||||
### Celery (`CELERY_*`)
|
||||
|
||||
@ -300,19 +299,11 @@ Module Federation) конфигурируется отдельно на этап
|
||||
| `django-kafka` | `secrets/data/kafka/apps/django` | `KAFKA_BOOTSTRAP_SERVERS/SECURITY_PROTOCOL/SASL_*` |
|
||||
| `django-jwt-private` / `django-jwt-public` | `secrets/data/vault/common/rsa_keys` | `JWT_PRIVATE_KEY` / `JWT_PUBLIC_KEY` |
|
||||
| `django-common` | `secrets/data/vault/common/django_auth` | `ZITADEL_ACCESS_TOKEN` |
|
||||
| `superset-jwt-secret` | k8s-секрет в неймспейсе `django` | `SERVER_SUPERSET_JWT_SECRET` для `/api/analytics/widgets/<id>/superset_guest_token/` |
|
||||
|
||||
Контейнер экспортирует эти файлы в окружение до запуска (`set -a; . /vault/secrets/...`).
|
||||
Кроме того, `production.py` из ConfigMap содержит функцию `_load_env_file`, которая
|
||||
подхватывает те же файлы при запуске `manage.py` через `kubectl exec` вне entrypoint.
|
||||
|
||||
Для wb superset guest token не использует сервисную учётку Guest Token API: backend
|
||||
формирует jwt локально и подписывает его `SERVER_SUPERSET_JWT_SECRET`, а superset
|
||||
проверяет тем же значением через `GUEST_TOKEN_JWT_SECRET = os.getenv("JWT_SECRET")`.
|
||||
Оба значения должны совпадать: `superset/jwt-secret` используется superset как
|
||||
`JWT_SECRET`, а `django/superset-jwt-secret` используется backend как
|
||||
`SERVER_SUPERSET_JWT_SECRET`.
|
||||
|
||||
Остальные (несекретные) переменные задаются в блоке `env` контейнеров
|
||||
`backend`/`celery` (`SERVER_*`, `WORKFLOWS_*`, `BIMV2_*`, `MEASUREMENTS_*`,
|
||||
`ZITADEL_HOST`, `KAFKA_TOPICS`, `EAV_ENABLE`, `PDM_SYNC`, `JWT_KID` и др.).
|
||||
|
||||
@ -1,4 +1,25 @@
|
||||
---
|
||||
# Копия django-configmap из base с заменой домена на домен контура.
|
||||
#
|
||||
# Патчем этого не сделать: все настройки лежат ОДНИМ значением data.production.py
|
||||
# (331 строка python), kustomize умеет заменить его только целиком. Ровно та же
|
||||
# причина, что у nginx-configmap.yaml рядом.
|
||||
#
|
||||
# ЧТО ИЗМЕНЕНО — две строки про домен sarex.contour.infra.sarex.tech,
|
||||
# принадлежащий ДРУГОМУ контуру:
|
||||
#
|
||||
# HOST — по нему backend строит АБСОЛЮТНЫЕ ссылки на медиа.
|
||||
# Браузер получал
|
||||
# https://sarex.contour.infra.sarex.tech/media/state/previews/....png
|
||||
# и, разумеется, 404: чужой хост, наших файлов там нет.
|
||||
# CSRF_TRUSTED_ORIGINS — без нашего домена django отклонял бы POST-формы
|
||||
# админки с ошибкой проверки Referer.
|
||||
#
|
||||
# И один блок сверх того: CsrfExemptSessionAuthentication в
|
||||
# DEFAULT_AUTHENTICATION_CLASSES вместо штатного SessionAuthentication —
|
||||
# из-за него SPA получала 403 на любое удаление. Обоснование и цена решения
|
||||
# расписаны прямо над классом.
|
||||
#
|
||||
# Больше в файле ничего не менялось: сравнивать с base удобно обычным diff.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
@ -6,17 +27,57 @@ metadata:
|
||||
namespace: django
|
||||
data:
|
||||
production.py: |
|
||||
|
||||
import ast
|
||||
import os
|
||||
from .base import *
|
||||
from logging.handlers import SysLogHandler
|
||||
from datetime import timedelta
|
||||
|
||||
def _load_env_file(path):
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
for raw_line in f:
|
||||
line = raw_line.strip()
|
||||
if not line or line.startswith("#") or "=" not in line:
|
||||
continue
|
||||
key, value = line.split("=", 1)
|
||||
key = key.strip()
|
||||
value = value.strip()
|
||||
if len(value) >= 2 and value[0] == value[-1] and value[0] in ("'", '"'):
|
||||
try:
|
||||
value = ast.literal_eval(value)
|
||||
except (ValueError, SyntaxError):
|
||||
value = value[1:-1]
|
||||
if key and key not in os.environ:
|
||||
os.environ[key] = value
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
def _read_secret_file(path, default=""):
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
return f.read().strip()
|
||||
except FileNotFoundError:
|
||||
return default
|
||||
|
||||
# Fallback for manage.py launched via `kubectl exec` (outside entrypoint),
|
||||
# so Django can still read DB/JWT values from Vault-injected files.
|
||||
_load_env_file("/vault/secrets/django-postgresql")
|
||||
_load_env_file("/vault/secrets/django-rabbitmq")
|
||||
_load_env_file("/vault/secrets/django-s3")
|
||||
_load_env_file("/vault/secrets/django-kafka")
|
||||
_load_env_file("/vault/secrets/django-common")
|
||||
|
||||
if not os.environ.get("JWT_PRIVATE_KEY"):
|
||||
os.environ["JWT_PRIVATE_KEY"] = _read_secret_file("/vault/secrets/django-jwt-private")
|
||||
if not os.environ.get("JWT_PUBLIC_KEY"):
|
||||
os.environ["JWT_PUBLIC_KEY"] = _read_secret_file("/vault/secrets/django-jwt-public")
|
||||
|
||||
ALLOWED_HOSTS = ["*"]
|
||||
FILE_UPLOAD_PERMISSIONS = 0o644
|
||||
DEBUG = False
|
||||
CSRF_COOKIE_SECURE = True
|
||||
CSRF_TRUSTED_ORIGINS = ["https://lk.srx.wb.ru:30443", "https://lk.srx.wb.ru"]
|
||||
CSRF_TRUSTED_ORIGINS = ["https://sarex.local.lonsdaleites.ru", "http://sarex.local.lonsdaleites.ru"]
|
||||
SESSION_COOKIE_SECURE = True
|
||||
SECURE_SSL_REDIRECT = False
|
||||
|
||||
@ -48,7 +109,7 @@ data:
|
||||
'Bearer',
|
||||
)
|
||||
|
||||
HOST = "https://wb.sarex.io"
|
||||
HOST = "https://sarex.local.lonsdaleites.ru"
|
||||
|
||||
POSTGRES_DATABASE = os.environ.get('DJANGO_POSTGRES_DATABASE')
|
||||
POSTGRES_USER = os.environ.get('DJANGO_POSTGRES_USER')
|
||||
@ -67,6 +128,11 @@ data:
|
||||
}
|
||||
}
|
||||
|
||||
MEASUREMENTSETTINGS = MeasurementSettings()
|
||||
WORKFLOWSSETTINGS = WorkFlowsSettings()
|
||||
S3SETTINGS = S3Settings()
|
||||
GATEWAYSETTINGS = GateWaySetttings()
|
||||
|
||||
LOGGING = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
@ -111,8 +177,8 @@ data:
|
||||
'BLACKLIST_AFTER_ROTATION': True,
|
||||
'UPDATE_LAST_LOGIN': False,
|
||||
'ALGORITHM': 'RS512',
|
||||
'SIGNING_KEY': os.environ.get("JWT_PRIVATE_KEY").replace("\\n", "\n"),
|
||||
'VERIFYING_KEY': os.environ.get("JWT_PUBLIC_KEY").replace("\\n", "\n"),
|
||||
'SIGNING_KEY': os.environ.get("JWT_PRIVATE_KEY", "").replace("\\n", "\n"),
|
||||
'VERIFYING_KEY': os.environ.get("JWT_PUBLIC_KEY", "").replace("\\n", "\n"),
|
||||
'AUDIENCE': None,
|
||||
'ISSUER': os.environ.get('SIMPLE_JWT_ISSUER', 'default_issuer'),
|
||||
'AUTH_HEADER_TYPES': ('Bearer',),
|
||||
@ -154,6 +220,40 @@ data:
|
||||
},
|
||||
}
|
||||
|
||||
# Сессионная аутентификация без проверки CSRF.
|
||||
#
|
||||
# SPA платформы аутентифицируется сессионной кукой и не прикладывает
|
||||
# заголовок X-CSRFToken, а SessionAuthentication из DRF требует его на
|
||||
# любом небезопасном методе. Наружу это выглядело так:
|
||||
# DELETE /api/core/videos/<id>/ → 403
|
||||
# {"detail": "CSRF Failed: CSRF token missing."}
|
||||
#
|
||||
# Проверено на контуре: тот же запрос с X-CSRFToken проходит, и он же с
|
||||
# заголовком Authorization: Bearer проходит тоже — до SessionAuthentication
|
||||
# дело в этом случае просто не доходит, потому что simple_jwt в списке ниже
|
||||
# стоит раньше. То есть бэкенд исправен, чинить нужно ровно сочетание
|
||||
# "кука без заголовка".
|
||||
#
|
||||
# ЧЕМ ПЛАТИМ: с запросов, авторизованных кукой, снимается защита от CSRF.
|
||||
# Основной вектор закрыт самими куками — sessionid и csrftoken выставляются
|
||||
# с SameSite=Lax, и браузер не пошлёт их при кросс-сайтовом DELETE. Щель
|
||||
# остаётся одна: SameSite смотрит на site, а не на origin, поэтому соседи
|
||||
# по домену (minio., rabbitmq., dashboard.) считаются "своими", а в MinIO
|
||||
# лежит пользовательский контент.
|
||||
#
|
||||
# Импорт DRF прямо в модуле настроек безопасен НЕ всегда — обычно так и
|
||||
# ловят AppRegistryNotReady. Здесь проверено запуском django.setup() внутри
|
||||
# работающего пода: rest_framework.authentication тянет только
|
||||
# django.contrib.auth и rest_framework.exceptions, и ни один из них к
|
||||
# моделям на уровне модуля не обращается.
|
||||
from rest_framework.authentication import SessionAuthentication
|
||||
|
||||
|
||||
class CsrfExemptSessionAuthentication(SessionAuthentication):
|
||||
def enforce_csrf(self, request):
|
||||
return
|
||||
|
||||
|
||||
REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': (
|
||||
'rest_framework.pagination.LimitOffsetPagination' ),
|
||||
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
|
||||
@ -164,7 +264,7 @@ data:
|
||||
'rest_framework.authentication.RemoteUserAuthentication',
|
||||
'rest_framework_simplejwt.authentication.JWTAuthentication',
|
||||
'rest_framework.authentication.BasicAuthentication',
|
||||
'rest_framework.authentication.SessionAuthentication',
|
||||
'config.settings.production.CsrfExemptSessionAuthentication',
|
||||
'sarex.authentication.backends.JWTAuthentication' ],
|
||||
'DEFAULT_PERMISSION_CLASSES': [
|
||||
'rest_framework.permissions.IsAuthenticated', ] }
|
||||
@ -228,17 +328,17 @@ data:
|
||||
"name": "Замечания",
|
||||
"uri": "/remarks"
|
||||
},
|
||||
{
|
||||
"name": "Управление проектами",
|
||||
"uri": "/management/projects",
|
||||
},
|
||||
# {
|
||||
# "name": "Управление проектами",
|
||||
# "uri": "/management/projects",
|
||||
# },
|
||||
{
|
||||
"name": "Замечания V2",
|
||||
"uri": "/issues"
|
||||
},
|
||||
{
|
||||
"name": "Документация",
|
||||
"uri": "/documentations"
|
||||
"uri": "/documentations",
|
||||
},
|
||||
{
|
||||
"name": "Согласование документов",
|
||||
@ -248,36 +348,35 @@ data:
|
||||
"name": "Рабочие процессы",
|
||||
"uri": "/processes"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "Аналитика",
|
||||
"uri": "/analytics"
|
||||
},
|
||||
{
|
||||
"name": "Запросы",
|
||||
"uri": "/rfi"
|
||||
},
|
||||
{
|
||||
"name": "Управление проектами",
|
||||
"uri": "/management/projects"
|
||||
},
|
||||
|
||||
# {
|
||||
# "name": "Обзор",
|
||||
# "uri": "/projects"
|
||||
# },
|
||||
{
|
||||
"name": "Передача документации",
|
||||
"uri": "/transmittal"
|
||||
},
|
||||
"name": "Передача документации",
|
||||
"uri": "/transmittal"
|
||||
},
|
||||
]
|
||||
AUTH_SETTINGS = {
|
||||
"refresh_token": False,
|
||||
"refresh_token_uri": "/api/token/me",
|
||||
"refresh_oauth_token": True,
|
||||
"refresh_oauth_token_uri": "/oauth/token",
|
||||
"refresh_time": 240,
|
||||
"refresh_token": False,
|
||||
"refresh_token_uri": "/api/token/me",
|
||||
"refresh_oauth_token": True,
|
||||
"refresh_oauth_token_uri": "/oauth/token",
|
||||
"refresh_time": 240,
|
||||
}
|
||||
|
||||
|
||||
DEBUG=False
|
||||
#WEB_APP_AUTH_MODE='jwt-session-based'
|
||||
DEBUG=True
|
||||
WEB_APP_AUTH_MODE='jwt-session-based'
|
||||
|
||||
|
||||
SAREX_MODULES_SETTINGS = {
|
||||
262
apps/django/aero/kustomization.yaml
Normal file
262
apps/django/aero/kustomization.yaml
Normal file
@ -0,0 +1,262 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: django
|
||||
resources:
|
||||
- ../base
|
||||
|
||||
patches:
|
||||
# Свой nginx.conf вместо базового: в base зашиты upstream'ы на namespace,
|
||||
# которых в контуре нет, и nginx из-за этого не стартовал. Подробности —
|
||||
# в шапке nginx-configmap.yaml.
|
||||
#
|
||||
# ИМЕННО ПАТЧ, а не resources. Объект с тем же kind+name уже пришёл из
|
||||
# ../base, и добавление его вторым ресурсом валит сборку целиком:
|
||||
# may not add resource with an already registered id:
|
||||
# ConfigMap.v1.[noGrp]/nginx-configmap.django
|
||||
# Перекрывать базовый ресурс можно только патчем.
|
||||
- path: nginx-configmap.yaml
|
||||
target:
|
||||
kind: ConfigMap
|
||||
name: nginx-configmap
|
||||
# Настройки django: в base захардкожен домен ЧУЖОГО контура. По нему backend
|
||||
# строил абсолютные ссылки на медиа, и браузер уходил на
|
||||
# https://sarex.contour.infra.sarex.tech/media/state/previews/....png
|
||||
# получая 404. Причина копии та же, что у nginx-configmap: настройки лежат
|
||||
# одним значением data.production.py, заменить можно только целиком.
|
||||
- path: django-configmap.yaml
|
||||
target:
|
||||
kind: ConfigMap
|
||||
name: django-configmap
|
||||
# --- celery: те же правки, что и у backend --------------------------------
|
||||
# Worker крутит тот же образ и те же настройки, поэтому и расхождения с base
|
||||
# у него ровно те же: нет Kafka, нет Zitadel, MinIO живёт внутри кластера.
|
||||
# Обоснования — в блоке backend ниже, здесь не дублирую.
|
||||
#
|
||||
# SERVER_ZITADEL_ENABLED правки не требует: в base у celery он уже "False"
|
||||
# (в отличие от backend).
|
||||
- target: {kind: HelmRelease, name: celery}
|
||||
patch: |
|
||||
- op: remove
|
||||
path: /spec/values/services/celery/podAnnotations/_default/vault.hashicorp.com~1agent-inject-secret-django-kafka
|
||||
- op: remove
|
||||
path: /spec/values/services/celery/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-kafka
|
||||
- op: remove
|
||||
path: /spec/values/services/celery/podAnnotations/_default/vault.hashicorp.com~1agent-inject-secret-django-common
|
||||
- op: remove
|
||||
path: /spec/values/services/celery/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-common
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-s3
|
||||
value: |-
|
||||
{{- with secret "secrets/data/minio/apps/django" }}
|
||||
AWS_S3_ENDPOINT_URL=http://minio.minio.svc.cluster.local:9000
|
||||
S3_HOST=http://minio.minio.svc.cluster.local:9000
|
||||
{{- $buckets := index .Data.data "buckets" }}
|
||||
S3_BUCKET={{ if gt (len $buckets) 0 }}{{ index (index $buckets 0) "name" }}{{ else }}django{{ end }}
|
||||
S3_LOGIN={{ index .Data.data "access_key" }}
|
||||
S3_PASSWORD={{ index .Data.data "secret_key" }}
|
||||
{{- end }}
|
||||
|
||||
# Стартовый скрипт без подключения django-kafka: этого секрета в контуре
|
||||
# нет. migrate и создание администратора сюда НЕ добавляются — схемой
|
||||
# владеет backend, а два процесса, катящих миграции наперегонки при
|
||||
# одновременном старте, — это гонка на ровном месте.
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/deployment/args/_default/0
|
||||
value: |
|
||||
set -a
|
||||
[ -f /vault/secrets/django-postgresql ] && . /vault/secrets/django-postgresql
|
||||
[ -f /vault/secrets/django-rabbitmq ] && . /vault/secrets/django-rabbitmq
|
||||
[ -f /vault/secrets/django-s3 ] && . /vault/secrets/django-s3
|
||||
[ -f /vault/secrets/django-jwt-private ] && export JWT_PRIVATE_KEY="$(cat /vault/secrets/django-jwt-private)"
|
||||
[ -f /vault/secrets/django-jwt-public ] && export JWT_PUBLIC_KEY="$(cat /vault/secrets/django-jwt-public)"
|
||||
set +a
|
||||
exec celery -A config worker -B -l info -E -Q default -n default_worker.%h --concurrency=2
|
||||
|
||||
# Адреса на wb.sarex.io — чужой контур, из aero недостижим. В base их
|
||||
# четыре, и все четыре у celery: у backend те же переменные уже указывают
|
||||
# внутрь кластера. WORKFLOWS_USE=1, так что оставить как есть — значит
|
||||
# получить зависания на недоступном домене вместо явной ошибки.
|
||||
- op: test
|
||||
path: /spec/values/services/celery/envs/15/name
|
||||
value: SERVER_API_HOST
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/envs/15/value/_default
|
||||
value: https://sarex.local.lonsdaleites.ru
|
||||
- op: test
|
||||
path: /spec/values/services/celery/envs/16/name
|
||||
value: SERVER_HOST
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/envs/16/value/_default
|
||||
value: https://sarex.local.lonsdaleites.ru
|
||||
- op: test
|
||||
path: /spec/values/services/celery/envs/17/name
|
||||
value: WORKFLOWS_HOST
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/envs/17/value/_default
|
||||
value: http://backend-svc.processing.svc.cluster.local:80
|
||||
- op: test
|
||||
path: /spec/values/services/celery/envs/18/name
|
||||
value: WORKFLOWS_BASE_HOST
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/envs/18/value/_default
|
||||
value: http://backend-svc.django.svc.cluster.local:80
|
||||
|
||||
# Тег образа выравнен с backend. В base у celery production_a96dead0, а у
|
||||
# backend production_f813140d — worker и web крутили бы разный код, и
|
||||
# рассинхрон вылезал бы не при старте, а на конкретной задаче: worker
|
||||
# десериализует аргументы по своей версии модели.
|
||||
- op: replace
|
||||
path: /spec/values/services/celery/image/name/_default
|
||||
value: cr.yandex/crp3ccidau046kdj8g9q/backend:production_f813140d
|
||||
|
||||
# --- s3-proxy: S3 внутри кластера ------------------------------------------
|
||||
# В base адрес MinIO зашит ВНУТРИ vault-шаблона:
|
||||
# AWS_API_ENDPOINT=https://minio.contour.infra.sarex.tech
|
||||
# Это чужой контур. Через values не перекрыть — значение внутри шаблона
|
||||
# аннотации, поэтому заменяем аннотацию целиком, как у backend и celery.
|
||||
#
|
||||
# Проявлялось не отказом в соединении, а тем, что s3-proxy ДОСТУЧАЛСЯ до
|
||||
# чужого MinIO и получил от него настоящий ответ S3:
|
||||
# SignatureDoesNotMatch: The request signature we calculated does not
|
||||
# match the signature you provided
|
||||
# наружу это выглядело как 500 на каждую плитку /media/orthophotos/...
|
||||
# Наши ключи в чужом хранилище, разумеется, не подходят — и хорошо, что так:
|
||||
# иначе контур молча читал бы и писал в чужой S3.
|
||||
- target: {kind: HelmRelease, name: s3-proxy}
|
||||
patch: |
|
||||
- op: replace
|
||||
path: /spec/values/services/s3-proxy/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-s3
|
||||
value: |
|
||||
{{- with secret "secrets/data/minio/apps/django" }}
|
||||
AWS_API_ENDPOINT=http://minio.minio.svc.cluster.local:9000
|
||||
{{- $buckets := index .Data.data "buckets" }}
|
||||
AWS_S3_BUCKET={{ if gt (len $buckets) 0 }}{{ index (index $buckets 0) "name" }}{{ else }}django{{ end }}
|
||||
AWS_ACCESS_KEY_ID={{ index .Data.data "access_key" }}
|
||||
AWS_SECRET_ACCESS_KEY={{ index .Data.data "secret_key" }}
|
||||
{{- end }}
|
||||
|
||||
# --- backend: убираем зависимости, которых в контуре нет ------------------
|
||||
- target: {kind: HelmRelease, name: backend}
|
||||
patch: |
|
||||
# Kafka и Zitadel в контуре не развёрнуты. Само приложение без них живёт:
|
||||
# * SERVER_KAFKA_ENABLED в base уже "False", а в sarex-backend продюсер
|
||||
# создаётся только под флагом (config/settings/deps/kafka.py);
|
||||
# * zitadel_enabled читается ровно в одном месте — update_ams_user()
|
||||
# в sarex/core/utils.py, которая при выключенном флаге сразу выходит.
|
||||
# К аутентификации Zitadel отношения не имеет.
|
||||
#
|
||||
# Но аннотации инжекции убрать ОБЯЗАТЕЛЬНО: vault-agent-init не отрендерит
|
||||
# шаблон для несуществующего секрета, упадёт, и под навсегда останется в
|
||||
# Init:Error — приложение до своих флагов даже не дойдёт.
|
||||
#
|
||||
# В JSON Pointer слэш внутри ключа экранируется как ~1, поэтому
|
||||
# vault.hashicorp.com/agent-... записан как vault.hashicorp.com~1agent-...
|
||||
- op: remove
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-secret-django-kafka
|
||||
- op: remove
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-kafka
|
||||
- op: remove
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-secret-django-common
|
||||
- op: remove
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-common
|
||||
|
||||
# S3 внутри кластера, а не через внешний домен. В base шаблон прибит к
|
||||
# https://minio.contour.infra.sarex.tech — чужому домену, который отсюда
|
||||
# не резолвится. Через values это не перекрыть: адрес зашит ВНУТРИ
|
||||
# vault-шаблона аннотации, поэтому заменяем аннотацию целиком.
|
||||
# Ходим напрямую в сервис MinIO, как это делал compose-стек.
|
||||
- op: replace
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-s3
|
||||
value: |-
|
||||
{{- with secret "secrets/data/minio/apps/django" }}
|
||||
AWS_S3_ENDPOINT_URL=http://minio.minio.svc.cluster.local:9000
|
||||
S3_HOST=http://minio.minio.svc.cluster.local:9000
|
||||
{{- $buckets := index .Data.data "buckets" }}
|
||||
S3_BUCKET={{ if gt (len $buckets) 0 }}{{ index (index $buckets 0) "name" }}{{ else }}django{{ end }}
|
||||
S3_LOGIN={{ index .Data.data "access_key" }}
|
||||
S3_PASSWORD={{ index .Data.data "secret_key" }}
|
||||
{{- end }}
|
||||
|
||||
# Выключаем Zitadel. Операция test перед replace — страховка от смещения
|
||||
# индекса: если в base порядок envs изменится, патч упадёт явно, вместо
|
||||
# того чтобы молча перезаписать соседнюю переменную.
|
||||
- op: test
|
||||
path: /spec/values/services/backend/envs/2/name
|
||||
value: SERVER_ZITADEL_ENABLED
|
||||
- op: replace
|
||||
path: /spec/values/services/backend/envs/2/value/_default
|
||||
value: "False"
|
||||
|
||||
# Адреса на чужой контур. У celery те же две переменные поправлены выше,
|
||||
# у backend они оставались с sarex.contour.infra.sarex.tech.
|
||||
- op: test
|
||||
path: /spec/values/services/backend/envs/17/name
|
||||
value: SERVER_API_HOST
|
||||
- op: replace
|
||||
path: /spec/values/services/backend/envs/17/value/_default
|
||||
value: https://sarex.local.lonsdaleites.ru
|
||||
- op: test
|
||||
path: /spec/values/services/backend/envs/18/name
|
||||
value: SERVER_HOST
|
||||
- op: replace
|
||||
path: /spec/values/services/backend/envs/18/value/_default
|
||||
value: https://sarex.local.lonsdaleites.ru
|
||||
|
||||
# --- Администратор платформы --------------------------------------------
|
||||
# Учётка приезжает из Vault под именами, которые ждёт штатная
|
||||
# createsuperuser --noinput. Секрет кладёт ansible
|
||||
# (vault_app_secrets, secrets/apps/django/superuser).
|
||||
- op: add
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-secret-django-superuser
|
||||
value: secrets/data/apps/django/superuser
|
||||
- op: add
|
||||
path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-template-django-superuser
|
||||
value: |-
|
||||
{{- with secret "secrets/data/apps/django/superuser" -}}
|
||||
DJANGO_SUPERUSER_USERNAME={{ index .Data.data "username" }}
|
||||
DJANGO_SUPERUSER_EMAIL={{ index .Data.data "email" }}
|
||||
DJANGO_SUPERUSER_PASSWORD={{ index .Data.data "password" }}
|
||||
{{- end -}}
|
||||
|
||||
# Стартовый скрипт целиком, а не точечная правка: JSON6902 умеет заменять
|
||||
# только элемент списка, а вся логика запуска — один shell-блок args[0].
|
||||
# Отличия от base:
|
||||
# * не подключается django-kafka — этого секрета в контуре нет;
|
||||
# * добавлены migrate и создание администратора.
|
||||
#
|
||||
# Почему migrate здесь, хотя его же делает /opt/sarex/entrypoint.sh:
|
||||
# там он запущен без set -e, и его падение НИКАК не мешает uwsgi
|
||||
# стартовать. Именно так контур несколько часов отдавал 200 на /admin/
|
||||
# с пустой схемой БД, пока backend не мог аутентифицироваться. Здесь
|
||||
# команда выполняется под set -e из command базы (/bin/sh -ec), поэтому
|
||||
# неудача валит под в CrashLoopBackOff — то есть становится видимой.
|
||||
# Повторный прогон внутри entrypoint.sh при уже накатанной схеме
|
||||
# отрабатывает вхолостую за секунды.
|
||||
- op: replace
|
||||
path: /spec/values/services/backend/deployment/args/_default/0
|
||||
value: |
|
||||
set -a
|
||||
[ -f /vault/secrets/django-postgresql ] && . /vault/secrets/django-postgresql
|
||||
[ -f /vault/secrets/django-rabbitmq ] && . /vault/secrets/django-rabbitmq
|
||||
[ -f /vault/secrets/django-s3 ] && . /vault/secrets/django-s3
|
||||
[ -f /vault/secrets/django-superuser ] && . /vault/secrets/django-superuser
|
||||
[ -f /vault/secrets/django-jwt-private ] && export JWT_PRIVATE_KEY="$(cat /vault/secrets/django-jwt-private)"
|
||||
[ -f /vault/secrets/django-jwt-public ] && export JWT_PUBLIC_KEY="$(cat /vault/secrets/django-jwt-public)"
|
||||
set +a
|
||||
|
||||
python manage.py migrate --noinput
|
||||
|
||||
# Идемпотентно по построению: команда отрабатывает при КАЖДОМ старте
|
||||
# пода, а на уже существующем логине штатно возвращает
|
||||
# "That username is already taken" с ненулевым кодом. Ошибка ожидаема
|
||||
# и гасится веткой else, иначе set -e ронял бы под на втором запуске.
|
||||
if [ -n "${DJANGO_SUPERUSER_USERNAME:-}" ]; then
|
||||
if python manage.py createsuperuser --noinput; then
|
||||
echo "entrypoint: администратор создан"
|
||||
else
|
||||
echo "entrypoint: администратор уже существует, пропускаем"
|
||||
fi
|
||||
fi
|
||||
|
||||
exec /opt/sarex/entrypoint.sh
|
||||
194
apps/django/aero/nginx-configmap.yaml
Normal file
194
apps/django/aero/nginx-configmap.yaml
Normal file
@ -0,0 +1,194 @@
|
||||
# Копия nginx-configmap из base с правками под контур aero.
|
||||
#
|
||||
# Патчем это сделать нельзя: конфиг лежит одной строкой в data.nginx.conf,
|
||||
# и kustomize умеет только заменить значение целиком.
|
||||
#
|
||||
# ЧТО ИЗМЕНЕНО ОТНОСИТЕЛЬНО base — три вещи:
|
||||
#
|
||||
# 1. Убран location /api/pm/. Сервис pm в контуре не нужен и не планируется.
|
||||
#
|
||||
# 2. Для workspaces и processing адрес вынесен в переменную и добавлен
|
||||
# resolver. Причина: nginx резолвит все upstream'ы ПРИ СТАРТЕ и падает
|
||||
# целиком, если хоть один не найден:
|
||||
# nginx: [emerg] host not found in upstream "backend-svc.pm..."
|
||||
# Из-за этого весь frontend уходил в CrashLoopBackOff, хотя не работал
|
||||
# лишь один маршрут. С переменной nginx откладывает резолвинг до запроса:
|
||||
# сейчас эти пути отдают 502, а когда сервисы приедут — заработают сами,
|
||||
# без правки конфига и перезапуска.
|
||||
#
|
||||
# ПОРЯДОК ДИРЕКТИВ ВНУТРИ ТАКОГО location ЗНАЧИМ: set обязан идти ДО
|
||||
# rewrite ... break. Обе директивы принадлежат ngx_http_rewrite_module, а
|
||||
# флаг break прекращает обработку его директив в этом location — set после
|
||||
# него просто не выполняется, переменная остаётся пустой, и запрос падает с
|
||||
# [error] no host in upstream ":80"
|
||||
# отдавая наружу 500. Именно так и было: / работал, а /workspaces-v2/... и
|
||||
# /workflows/... возвращали 500, пока set стоял ниже rewrite.
|
||||
#
|
||||
# 3. backend-svc оставлен прямой ссылкой: он в этом же namespace и существует
|
||||
# всегда, откладывать его резолвинг незачем — наоборот, ошибка в имени
|
||||
# обнаружится сразу при старте.
|
||||
#
|
||||
# Адрес resolver'а — CoreDNS кластера. В k3s он называется kube-dns
|
||||
# (имя сохранено для совместимости), namespace kube-system.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-configmap
|
||||
namespace: django
|
||||
data:
|
||||
nginx.conf: |
|
||||
worker_processes auto;
|
||||
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
use epoll;
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
|
||||
# Basic Settings
|
||||
large_client_header_buffers 8 128k;
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 300;
|
||||
types_hash_max_size 2048;
|
||||
client_max_body_size 5000M;
|
||||
client_header_buffer_size 5M;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Logging Settings
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
# GZIP Settings
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_buffers 16 8k;
|
||||
gzip_http_version 1.1;
|
||||
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
# Резолвер нужен для upstream'ов, заданных переменной (см. ниже).
|
||||
resolver kube-dns.kube-system.svc.cluster.local valid=30s ipv6=off;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
root /opt/react_client/;
|
||||
|
||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||
add_header 'Access-Control-Allow-Methods' '*' always;
|
||||
add_header 'Access-Control-Allow-Headers' '*' always;
|
||||
|
||||
location = /static/index.bundle.js {
|
||||
add_header Cache-Control 'no-store no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
}
|
||||
|
||||
# Выбор способа аутентификации. Фронтенд на старте делает
|
||||
# fetch("/static/config.json") и, если там есть auth_type,
|
||||
# БЕЗУСЛОВНО перекрывает им режим, зашитый в сборку
|
||||
# (src/Model/api/http-service.ts). Значения ровно два:
|
||||
# "zitadel" и "original"; original — классический вход по
|
||||
# логину и паролю с JWT, ради которого backend и получает из
|
||||
# Vault ключи RS512.
|
||||
#
|
||||
# В образе sarex-frontend-dev:contour_* этот файл лежит со
|
||||
# значением zitadel и хостом zitadel.contour.infra.sarex.tech —
|
||||
# чужой контур, из aero недоступен. Из-за него платформа
|
||||
# редиректила на /oauth/v2/authorize и получала
|
||||
# invalid_request: The requested redirect_uri is missing
|
||||
# in the client configuration
|
||||
# то есть войти было нельзя в принципе.
|
||||
#
|
||||
# Отдаём файл прямо из nginx, не подкладывая том: сам
|
||||
# static/config.json в sarex-frontend лежит в .gitignore и
|
||||
# заполняется на каждом стенде своим — это штатная точка
|
||||
# расширения, а не обход. В апстримном nginx.conf под него уже
|
||||
# заведён такой же location =, только читающий с диска.
|
||||
#
|
||||
# Подменить через localStorage нельзя: оверрайд оттуда
|
||||
# действует лишь для endpoint'ов stage, preprod и local,
|
||||
# contour в этом списке нет.
|
||||
#
|
||||
# ВАЖНО ПРИ ПРОВЕРКЕ: правка НЕ видна с первой перезагрузки.
|
||||
# Класс Config (src/shared/config/config.ts) держит копию в
|
||||
# localStorage под ключом "config" и на старте берёт СИНХРОННО
|
||||
# кеш, а файл сверяет уже асинхронно:
|
||||
# if (this.cacheData) { this.data = this.cacheData;
|
||||
# this.invalidateCache(); }
|
||||
# а http-service.ts читает auth_type в момент импорта модуля.
|
||||
# Поэтому первая загрузка после правки лишь обновляет кеш, а
|
||||
# применяется он со второй. Ускорить —
|
||||
# localStorage.removeItem('config')
|
||||
# Консоль удобно открыть на /static/config.json: тот же origin,
|
||||
# но JS не выполняется и редиректа на Zitadel не будет.
|
||||
location = /static/config.json {
|
||||
default_type application/json;
|
||||
add_header Cache-Control 'no-store no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
return 200 '{"auth_type":"original"}';
|
||||
}
|
||||
|
||||
# location /api/pm/ из base удалён: сервис pm контуру не нужен.
|
||||
|
||||
location ~^/(api|admin)/ {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://backend-svc.django.svc.cluster.local:80;
|
||||
}
|
||||
|
||||
# workspaces появится позже — резолвим лениво, через переменную.
|
||||
location ~^/workspaces-v2/(.+).js {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
set $up_workspaces frontend-svc.workspaces.svc.cluster.local;
|
||||
rewrite /workspaces-v2/(.+) /$1 break;
|
||||
proxy_pass http://$up_workspaces:80;
|
||||
}
|
||||
|
||||
location ~^/workspaces-v2/(.+)\.wasm$ {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
set $up_workspaces_wasm frontend-svc.workspaces.svc.cluster.local;
|
||||
rewrite ^/workspaces-v2/(.+) /$1 break;
|
||||
proxy_pass http://$up_workspaces_wasm:80;
|
||||
}
|
||||
|
||||
location @index {
|
||||
add_header Cache-Control 'no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
try_files /static/index.html =404;
|
||||
}
|
||||
|
||||
# processing появится позже — тоже лениво.
|
||||
location ~^/workflows/(.+).js {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
set $up_processing frontend-svc.processing.svc.cluster.local;
|
||||
rewrite /workflows/(.+) /$1 break;
|
||||
proxy_pass http://$up_processing:80;
|
||||
}
|
||||
|
||||
location /service-worker.js {
|
||||
try_files /static/$uri @index;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri @index;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -296,10 +296,6 @@ data:
|
||||
"name": "Запросы",
|
||||
"uri": "/rfi"
|
||||
},
|
||||
{
|
||||
"name": "Аналитика",
|
||||
"uri": "/analytics"
|
||||
},
|
||||
{
|
||||
"name": "Управление проектами",
|
||||
"uri": "/management/projects"
|
||||
|
||||
@ -29,7 +29,7 @@ spec:
|
||||
enabled: true
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/sarex-frontend-dev:contour_5.22.3
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/sarex-frontend-dev:contour_5.22.0
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
deployment:
|
||||
|
||||
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/backend:production_7d0ec48b
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/backend:production_8f05291e
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/export-project:prod_ef8aa756
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/export-project:prod_37a48176
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/s3-proxy:stable
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/export-project:prod_37a48176
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
@ -93,12 +93,6 @@ spec:
|
||||
- name: APP_PORT
|
||||
value:
|
||||
_default: "8000"
|
||||
- name: ACCESS_LOG
|
||||
value:
|
||||
_default: "true"
|
||||
- name: CORS_ALLOW_HEADERS
|
||||
value:
|
||||
_default: "Content-Type, Accept-Ranges, Content-Range, Content-Encoding"
|
||||
secretEnvs:
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
secretName:
|
||||
|
||||
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/backend:production_7d0ec48b
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/backend:production_8f05291e
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ spec:
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/sarex-frontend-dev:contour_5.22.3
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/sarex-frontend-dev:contour_5.16.3
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
|
||||
@ -1,91 +0,0 @@
|
||||
---
|
||||
# Скопировано из apps/django/wb/auth-flow-frontend.yaml (см. pdf-markings.yaml
|
||||
# для причины) — компонент auth-flow, развёрнутый в ns django.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: auth-flow-frontend
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
auth-flow-frontend:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/auth-flow-frontend:contour_fe9ea2a3
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: auth-flow-frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 100m
|
||||
memory:
|
||||
_default: 128Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: auth-flow-frontend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,369 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease — base vault-native, в ugok Vault не используется.
|
||||
# command/args из base — только vault-обёртка (в живом дампе кластера у
|
||||
# backend command/args нет вообще), не переносим.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: django
|
||||
|
||||
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/backend:production_7d0ec48b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend
|
||||
|
||||
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
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: django-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/config/settings/production.py
|
||||
subPath:
|
||||
_default: production.py
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: django-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path:
|
||||
_default: production.py
|
||||
|
||||
- name: uwsgi-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/uwsgi.ini
|
||||
subPath:
|
||||
_default: uwsgi.ini
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: uwsgi-configmap
|
||||
items:
|
||||
- key: uwsgi.ini
|
||||
path:
|
||||
_default: uwsgi.ini
|
||||
|
||||
- name: kafka-cert-volume
|
||||
mountPath:
|
||||
_default: /usr/local/share/ca-certificates
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: kafka-cert
|
||||
|
||||
envs:
|
||||
- name: ALLOWED_HOSTS
|
||||
value:
|
||||
_default: "*"
|
||||
- name: SERVER_USE_CHANGELOG
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_ZITADEL_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value:
|
||||
_default: config.settings.production
|
||||
- name: CELERY_REDIS_HOST
|
||||
value:
|
||||
_default: redis-service
|
||||
- name: CELERY_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
- name: SERVER_EXTERNAL_FIND_BY_USERNAME_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: SERVER_EXTERNAL_FIND_BY_EMAIL_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: DJANGO_REDIS_HOST
|
||||
value:
|
||||
_default: redis-service
|
||||
- name: DJANGO_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
- name: BIMV2_INTERNAL_HOST
|
||||
value:
|
||||
_default: http://bim-backend-v2-service.bim-api
|
||||
- name: BIMV2_TIMEOUT
|
||||
value:
|
||||
_default: "60"
|
||||
- name: JWT_KID
|
||||
value:
|
||||
_default: "1"
|
||||
- name: PDM_SYNC
|
||||
value:
|
||||
_default: "1"
|
||||
- name: KC_SYNC_ENABLE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: MEASUREMENTS_HOST
|
||||
value:
|
||||
_default: http://measurement-svc.measurements.svc.cluster.local:8000/api
|
||||
- name: MEASUREMENTS_USE_MEASUREMENTS
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_API_HOST
|
||||
value:
|
||||
_default: https://ugok-sarex.uralmine.com
|
||||
- name: SERVER_HOST
|
||||
value:
|
||||
_default: https://ugok-sarex.uralmine.com
|
||||
- name: WORKFLOWS_HOST
|
||||
value:
|
||||
_default: http://workflows-api-service.workflow.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_BASE_HOST
|
||||
value:
|
||||
_default: http://backend.django.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_PREFIX
|
||||
value:
|
||||
_default: /internal/v1
|
||||
- name: WORKFLOWS_USE
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_S3_STREAM_IMPORT
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_SAVE_DIFF_DEM
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_USE_CLICKHOUSE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_USE_CREATE_COMPARED_GEOTIFF_TASK
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_USE_DJANGO_STORAGE
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_USE_METASHAPE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_CHANGELOG_MODE_SYSTEM_LOG
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_CHANGELOG_MODE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_DJANGO_URLS
|
||||
value:
|
||||
_default: "1"
|
||||
- name: CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
- name: ZITADEL_HOST
|
||||
value:
|
||||
_default: https://ugok-zitadel-sarex.uralmine.com
|
||||
- name: EAV_ENABLE
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_CHUNKED_PATH
|
||||
value:
|
||||
_default: /tmp/chunked_uploads/%Y/%m/%d
|
||||
- name: SERVER_HIDE_USER_SCROLL_PERMISSIONS
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_USE_WRORKFLOW_STATUS
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_KAFKA_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: RESOURCES_INTERNAL_HOST
|
||||
value:
|
||||
_default: http://iams.iam.svc.cluster.local:8080
|
||||
- name: KAFKA_TOPICS
|
||||
value:
|
||||
_default: '{"planning": "message-hub-stage", "ams-sync": "ams-sync"}'
|
||||
- name: KAFKA_BOOTSTRAP_SERVERS
|
||||
value:
|
||||
_default: '["ugok-prod-kafka-bootstrap.kafka.svc.cluster.local:9093"]'
|
||||
- name: KAFKA_SECURITY_PROTOCOL
|
||||
value:
|
||||
_default: SSL
|
||||
- name: KAFKA_SASL_MECHANISM
|
||||
value:
|
||||
_default: SCRAM-SHA-512
|
||||
- name: KAFKA_SSL_CAFILE
|
||||
value:
|
||||
_default: /usr/local/share/ca-certificates/kafka.crt
|
||||
- name: S3_HOST
|
||||
value:
|
||||
_default: http://minio.minio.svc.cluster.local:9000
|
||||
- name: KC_USE_REDIRECT_LOGOUT
|
||||
value:
|
||||
_default: "False"
|
||||
|
||||
secretEnvs:
|
||||
- name: ZITADEL_ACCESS_TOKEN
|
||||
secretName:
|
||||
_default: zitadel-secret
|
||||
secretKey: access_token
|
||||
- name: KAFKA_SASL_PLAIN_USERNAME
|
||||
secretName:
|
||||
_default: kafka-secret
|
||||
secretKey: username
|
||||
- name: KAFKA_SASL_PLAIN_PASSWORD
|
||||
secretName:
|
||||
_default: kafka-secret
|
||||
secretKey: password
|
||||
- name: AWS_S3_ENDPOINT_URL
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: endpoint
|
||||
- name: CELERY_RABBITMQ_HOST
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: host
|
||||
- name: CELERY_RABBITMQ_USER
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: username
|
||||
- name: CELERY_RABBITMQ_PASSWORD
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: password
|
||||
- name: CELERY_RABBITMQ_VHOST
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: vhost
|
||||
- name: DJANGO_POSTGRES_HOST
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: host
|
||||
- name: DJANGO_POSTGRES_PORTS
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: port
|
||||
- name: DJANGO_POSTGRES_USER
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: username
|
||||
- name: DJANGO_POSTGRES_PASSWORD
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: password
|
||||
- name: DJANGO_POSTGRES_DATABASE
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: database
|
||||
- name: DJANGO_RABBIT_HOSTNAME
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: host
|
||||
- name: DJANGO_RABBIT_USER
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: username
|
||||
- name: DJANGO_RABBIT_PASS
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: password
|
||||
- name: DJANGO_RABBIT_VHOST
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: vhost
|
||||
- name: JWT_PRIVATE_KEY
|
||||
secretName:
|
||||
_default: backend-secret
|
||||
secretKey: ssh_private.key
|
||||
- name: JWT_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: backend-secret
|
||||
secretKey: ssh_public.key
|
||||
- name: S3_BUCKET
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: bucket
|
||||
- name: S3_LOGIN
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: access_key
|
||||
- name: S3_PASSWORD
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: secret_key
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,360 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease — base vault-native, в ugok Vault не используется.
|
||||
# command — реальная команда запуска celery из дампа кластера (не
|
||||
# vault-обёртка).
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: celery
|
||||
namespace: django
|
||||
|
||||
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:
|
||||
celery:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/backend:production_7d0ec48b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: celery
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
command:
|
||||
_default: ["celery", "-A", "config", "worker", "-B", "-l", "info", "-E", "-Q", "default", "-n", "default_worker.%h", "--concurrency=2"]
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 128Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: false
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: django-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/config/settings/production.py
|
||||
subPath:
|
||||
_default: production.py
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: django-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path:
|
||||
_default: production.py
|
||||
|
||||
- name: uwsgi-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/uwsgi.ini
|
||||
subPath:
|
||||
_default: uwsgi.ini
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: uwsgi-configmap
|
||||
items:
|
||||
- key: uwsgi.ini
|
||||
path:
|
||||
_default: uwsgi.ini
|
||||
|
||||
- name: kafka-cert-volume
|
||||
mountPath:
|
||||
_default: /usr/local/share/ca-certificates
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: kafka-cert
|
||||
|
||||
envs:
|
||||
- name: ALLOWED_HOSTS
|
||||
value:
|
||||
_default: "*"
|
||||
- name: SERVER_USE_CHANGELOG
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_ZITADEL_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value:
|
||||
_default: config.settings.production
|
||||
- name: CELERY_REDIS_HOST
|
||||
value:
|
||||
_default: redis-service
|
||||
- name: CELERY_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
- name: SERVER_EXTERNAL_FIND_BY_USERNAME_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: SERVER_EXTERNAL_FIND_BY_EMAIL_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: DJANGO_REDIS_HOST
|
||||
value:
|
||||
_default: redis-service
|
||||
- name: DJANGO_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
- name: BIMV2_INTERNAL_HOST
|
||||
value:
|
||||
_default: http://bim-backend-v2-service.bim-api
|
||||
- name: BIMV2_TIMEOUT
|
||||
value:
|
||||
_default: "60"
|
||||
- name: JWT_KID
|
||||
value:
|
||||
_default: "1"
|
||||
- name: PDM_SYNC
|
||||
value:
|
||||
_default: "1"
|
||||
- name: KC_SYNC_ENABLE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: MEASUREMENTS_HOST
|
||||
value:
|
||||
_default: http://measurement-svc.measurements.svc.cluster.local:8000/api
|
||||
- name: MEASUREMENTS_USE_MEASUREMENTS
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_API_HOST
|
||||
value:
|
||||
_default: https://ugok-sarex.uralmine.com
|
||||
- name: SERVER_HOST
|
||||
value:
|
||||
_default: https://ugok-sarex.uralmine.com
|
||||
- name: WORKFLOWS_HOST
|
||||
value:
|
||||
_default: http://workflows-api-service.workflow.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_BASE_HOST
|
||||
value:
|
||||
_default: http://backend.django.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_PREFIX
|
||||
value:
|
||||
_default: /internal/v1
|
||||
- name: WORKFLOWS_USE
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_S3_STREAM_IMPORT
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_SAVE_DIFF_DEM
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_USE_CLICKHOUSE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_USE_CREATE_COMPARED_GEOTIFF_TASK
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_USE_DJANGO_STORAGE
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_USE_METASHAPE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_CHANGELOG_MODE_SYSTEM_LOG
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_CHANGELOG_MODE
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_DJANGO_URLS
|
||||
value:
|
||||
_default: "1"
|
||||
- name: CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
- name: EAV_ENABLE
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_CHUNKED_PATH
|
||||
value:
|
||||
_default: /tmp/chunked_uploads/%Y/%m/%d
|
||||
- name: SERVER_HIDE_USER_SCROLL_PERMISSIONS
|
||||
value:
|
||||
_default: "0"
|
||||
- name: SERVER_USE_WRORKFLOW_STATUS
|
||||
value:
|
||||
_default: "1"
|
||||
- name: SERVER_KAFKA_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
- name: RESOURCES_INTERNAL_HOST
|
||||
value:
|
||||
_default: http://iams.iam.svc.cluster.local:8080
|
||||
- name: KAFKA_TOPICS
|
||||
value:
|
||||
_default: '{"planning": "message-hub-stage", "ams-sync": "ams-sync"}'
|
||||
- name: KAFKA_BOOTSTRAP_SERVERS
|
||||
value:
|
||||
_default: '["ugok-prod-kafka-bootstrap.kafka.svc.cluster.local:9093"]'
|
||||
- name: KAFKA_SECURITY_PROTOCOL
|
||||
value:
|
||||
_default: SSL
|
||||
- name: KAFKA_SASL_MECHANISM
|
||||
value:
|
||||
_default: SCRAM-SHA-512
|
||||
- name: KAFKA_SSL_CAFILE
|
||||
value:
|
||||
_default: /usr/local/share/ca-certificates/kafka.crt
|
||||
- name: S3_HOST
|
||||
value:
|
||||
_default: http://minio.minio.svc.cluster.local:9000
|
||||
- name: CACHE_HOST
|
||||
value:
|
||||
_default: redis.pm.svc.cluster.local
|
||||
- name: ZITADEL_HOST
|
||||
value:
|
||||
_default: https://ugok-zitadel-sarex.uralmine.com
|
||||
- name: KC_USE_REDIRECT_LOGOUT
|
||||
value:
|
||||
_default: "False"
|
||||
|
||||
secretEnvs:
|
||||
- name: ZITADEL_ACCESS_TOKEN
|
||||
secretName:
|
||||
_default: zitadel-secret
|
||||
secretKey: access_token
|
||||
- name: KAFKA_SASL_PLAIN_USERNAME
|
||||
secretName:
|
||||
_default: kafka-secret
|
||||
secretKey: username
|
||||
- name: KAFKA_SASL_PLAIN_PASSWORD
|
||||
secretName:
|
||||
_default: kafka-secret
|
||||
secretKey: password
|
||||
- name: AWS_S3_ENDPOINT_URL
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: endpoint
|
||||
- name: CELERY_RABBITMQ_HOST
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: host
|
||||
- name: CELERY_RABBITMQ_USER
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: username
|
||||
- name: CELERY_RABBITMQ_PASSWORD
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: password
|
||||
- name: CELERY_RABBITMQ_VHOST
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: vhost
|
||||
- name: DJANGO_POSTGRES_HOST
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: host
|
||||
- name: DJANGO_POSTGRES_PORTS
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: port
|
||||
- name: DJANGO_POSTGRES_USER
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: username
|
||||
- name: DJANGO_POSTGRES_PASSWORD
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: password
|
||||
- name: DJANGO_POSTGRES_DATABASE
|
||||
secretName:
|
||||
_default: sarex-postgresql-secret
|
||||
secretKey: database
|
||||
- name: DJANGO_RABBIT_HOSTNAME
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: host
|
||||
- name: DJANGO_RABBIT_USER
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: username
|
||||
- name: DJANGO_RABBIT_PASS
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: password
|
||||
- name: DJANGO_RABBIT_VHOST
|
||||
secretName:
|
||||
_default: sarex-rabbitmq-secret
|
||||
secretKey: vhost
|
||||
- name: JWT_PRIVATE_KEY
|
||||
secretName:
|
||||
_default: backend-secret
|
||||
secretKey: ssh_private.key
|
||||
- name: JWT_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: backend-secret
|
||||
secretKey: ssh_public.key
|
||||
- name: S3_BUCKET
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: bucket
|
||||
- name: S3_LOGIN
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: access_key
|
||||
- name: S3_PASSWORD
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: secret_key
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
File diff suppressed because one or more lines are too long
@ -1,103 +0,0 @@
|
||||
---
|
||||
# Скопировано из apps/django/wb/export-project.yaml — в base нет HelmRelease
|
||||
# для этого сервиса (только в wb overlay), а ссылаться на файл в другом
|
||||
# оверлее kustomize не даёт (вне дерева каталога). Образ/envs совпадают с
|
||||
# дампом ugok уже "из коробки" (только регистр другой — правится патчем).
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: export-project
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
export-project:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/export-project:prod_ef8aa756
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: export-project
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: "2"
|
||||
memory:
|
||||
_default: 8Gi
|
||||
requests:
|
||||
cpu:
|
||||
_default: "1"
|
||||
memory:
|
||||
_default: 512Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: export-project-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
envs:
|
||||
- name: TIMEOUT
|
||||
value:
|
||||
_default: "180"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,116 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: django
|
||||
|
||||
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/sarex-frontend-dev:contour_5.22.3
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 100Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: frontend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: nginx-configmap
|
||||
mountPath:
|
||||
_default: /etc/nginx/nginx.conf
|
||||
subPath:
|
||||
_default: nginx.conf
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: nginx-configmap
|
||||
items:
|
||||
- key: nginx.conf
|
||||
path:
|
||||
_default: nginx.conf
|
||||
|
||||
- name: zitadel-configmap
|
||||
mountPath:
|
||||
_default: /opt/react_client/static/config.json
|
||||
subPath:
|
||||
_default: config.json
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: zitadel-configmap
|
||||
items:
|
||||
- key: config.json
|
||||
path:
|
||||
_default: config.json
|
||||
@ -1,39 +0,0 @@
|
||||
---
|
||||
# Скопировано из живого ConfigMap кластера ugok (namespace django).
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kafka-cert
|
||||
namespace: django
|
||||
data:
|
||||
kafka.crt: |
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFLTCCAxWgAwIBAgIUD6mKIbYkBT6T/cgK3Ibgm75vRrAwDQYJKoZIhvcNAQEN
|
||||
BQAwLTETMBEGA1UECgwKaW8uc3RyaW16aTEWMBQGA1UEAwwNY2x1c3Rlci1jYSB2
|
||||
MDAeFw0yNjA0MTQwODQ1MTRaFw0yNzA0MTQwODQ1MTRaMC0xEzARBgNVBAoMCmlv
|
||||
LnN0cmltemkxFjAUBgNVBAMMDWNsdXN0ZXItY2EgdjAwggIiMA0GCSqGSIb3DQEB
|
||||
AQUAA4ICDwAwggIKAoICAQCc9ecE59Ju5JRuGr1ConD8wPINXO9jgKdctuiwZloE
|
||||
eHYZGfLpEZY1v6CulK3xlVdK4rJRH7MA0r5G3+o7ZkGW4htaAz1zk71npiibLxC/
|
||||
2g7MQoMsfheglB8NpVpjGlbMScCJUIbWZr6UK1JUX9kAPgZBMR3E/R24nlYiygKP
|
||||
4T9EEMw0YgKFkXZl20+cH2pmaUK7219+WR/MdiQ+d+445L7DLJNYI/xn9Yoc8OQb
|
||||
A63SVK5APWwGFvXAjNqrcJpvrud3Age9CRqJ+M4Y6PTu05Pf1C6GUhLfTfsdleU6
|
||||
PsORiG/9DVc9rjDOvEk7pwrBYaK4u39BA5XBnppxHuAsxPjbnVAwGBia/3N2vLa4
|
||||
Fht4PBIDMH0KUKDRktT+rGFdg+gl1HJ/vT2Z+HqAOdW3DUCt4aY8B10/jPWHWByq
|
||||
gvRNUSJSBGeLI2Yk3pbQKerS+UOMjcmGXw8gZHSvqwEs6EAX/msSmcTS2wDbu83E
|
||||
tAXrHyriNpHilIaxlizbb7h3jXVhZX7G2o0BtPqFOsV9eo0bzUcRaf8XWqXHFoGw
|
||||
6rks0Q06HOTrARDhAG0qot8pQ6WIM8zYjPT5Jb+Wx2UbPbdLtqY+W/t9udL8Q+tW
|
||||
eL3+4oTllSeuHtCJy/UX1/GyN+O/PAXxDeEP1AmamweftXALlMhHzV/FHJjvd2L4
|
||||
rQIDAQABo0UwQzAdBgNVHQ4EFgQUlPHFj51uMcGYeqJ9bf7BRqOiWdowEgYDVR0T
|
||||
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIB
|
||||
ABsb407P4GzhY1in3wwA9wB2evF4WhtuBQw4Cm1/jDFv6Yhe+qTFOM8+g8RiFJl4
|
||||
KfGLzzQWiBbZfyKdqYTSDjio2WJhdXjP+V9YVmnNBXAwdTJOUbKjKgZlo1CniC3O
|
||||
O/xzEmohC6Vkl9Ph4aGzqMivpYfiVjRzs1TeJNzPO131HOwzLUtrXEUJ5I9AWEzE
|
||||
C0QCdr38ZoXSOq+eNm7q4ANi10ElHoiUdIkgjobCu2y6m+oiaeWLhs+i/LjE93vb
|
||||
hlIzsIcJRIc5hC7QIORiR4pDuoxn/WP+41wdfUfVF7FugAaPhyF5TOJgTx0baCj9
|
||||
3gtCfcfsy6Md2U4GLXj0UIs5M//7s0pdjCrvyDOCbrZUQs8JUZ4viqIUqVGRSFjg
|
||||
5ofP1KgOIbG225T+XaXVapJETu29ggOv/ZhGm9JHZjAKi6yCUvXS2H7VWVk1Ob+e
|
||||
GAXCtCWPF8C4uM4rkNwXCYzlX4kEeGyq0PifxOlz/KDSY+5C00fK9Ke+4C3aV53v
|
||||
1NDoOaOYbObWHls3jrZ4EN08vYh9RIHmLpXCTdwwPqhHj/oJSFwN9ZHh0gW5NcYW
|
||||
etX8+dQHoVkJP7KDMgAJ3l3Bgh2qOh6bM4gmvAc4Kp7YdlslBxzGscnKbkfoQYl+
|
||||
NK4a+hSjXnk7ttSxachKb38LSZRNBA/LGUUB3t07anjZ
|
||||
-----END CERTIFICATE-----
|
||||
@ -1,21 +0,0 @@
|
||||
---
|
||||
# Не наследуем base (backend/celery/s3-proxy vault-native) — см. комментарии
|
||||
# в файлах. auth-flow-frontend.yaml/export-project.yaml/pdf-markings.yaml
|
||||
# скопированы из wb (в base для них нет HelmRelease).
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: django
|
||||
resources:
|
||||
- django-configmap.yaml
|
||||
- uwsgi-configmap.yaml
|
||||
- kafka-cert.yaml
|
||||
- nginx-configmap.yaml
|
||||
- zitadel-configmap.yaml
|
||||
- backend.yaml
|
||||
- celery.yaml
|
||||
- frontend.yaml
|
||||
- s3-proxy.yaml
|
||||
- srx-admin.yaml
|
||||
- auth-flow-frontend.yaml
|
||||
- export-project.yaml
|
||||
- redis.yaml
|
||||
@ -1,188 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-configmap
|
||||
namespace: django
|
||||
data:
|
||||
nginx.conf: |
|
||||
worker_processes auto;
|
||||
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
use epoll;
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
|
||||
# Basic Settings
|
||||
large_client_header_buffers 8 128k;
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 300;
|
||||
types_hash_max_size 2048;
|
||||
client_max_body_size 5000M;
|
||||
client_header_buffer_size 5M;
|
||||
# server_tokens off;
|
||||
# server_names_hash_bucket_size 64;
|
||||
# server_name_in_redirect off;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Logging Settings
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
# GZIP Settings
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_buffers 16 8k;
|
||||
gzip_http_version 1.1;
|
||||
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
root /opt/react_client/;
|
||||
|
||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||
add_header 'Access-Control-Allow-Methods' '*' always;
|
||||
add_header 'Access-Control-Allow-Headers' '*' always;
|
||||
|
||||
location = /static/index.bundle.js {
|
||||
add_header Cache-Control 'no-store no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
}
|
||||
|
||||
location ~^/api/pm/ {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://backend-service.pm.svc.cluster.local:8000;
|
||||
}
|
||||
|
||||
location ~^/media/ {
|
||||
proxy_http_version 1.1;
|
||||
rewrite ^/media/(.*)$ /$1 break;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://s3-proxy-service:80;
|
||||
}
|
||||
|
||||
location ~^/api/v1/documents/ {
|
||||
proxy_http_version 1.1;
|
||||
rewrite /api/(.+) /$1 break;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://documentations-filestream.documentations.svc.cluster.local:8080;
|
||||
}
|
||||
|
||||
location ~^/(api|admin)/ {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://backend:8000;
|
||||
}
|
||||
|
||||
# location ~^/flows/static/ {
|
||||
# rewrite /flows/static/(.+) /$1 break;
|
||||
# proxy_pass http://frontend-service.flows:80;
|
||||
# }
|
||||
|
||||
# location = ~^/orchestrator/ {
|
||||
# rewrite ^/orchestrator$ /api/ break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
# location = ~^/orchestrator/api/process {
|
||||
# rewrite ^/orchestrator/api/process$ /api/process break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
# location ~ ^/orchestrator/api/process/(.*)$ {
|
||||
# rewrite ^/orchestrator/api/process/(.*)$ /api/process/$1 break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
# location = ~^/orchestrator/api/sign {
|
||||
# rewrite ^/orchestrator/api/sign$ /api/sign break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
location = /static/pdf-runtime/assets/mupdf-wasm.wasm {
|
||||
alias /opt/react_client/static/pdf-runtime/assets/mupdf-wasm.wasm;
|
||||
add_header Content-Type application/wasm always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/static/viewer-pdf/mupdf-wasm.js {
|
||||
alias /opt/react_client/static/viewer-pdf/mupdf-wasm.js;
|
||||
add_header Content-Type application/javascript always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/mupdf.worker-3.3.9.js {
|
||||
alias /opt/react_client/static/pdf-runtime/mupdf.worker-3.3.9.js;
|
||||
add_header Content-Type application/javascript always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/static/viewer-pdf/mupdf.js {
|
||||
alias /opt/react_client/static/viewer-pdf/mupdf.js;
|
||||
add_header Content-Type application/javascript always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/static/viewer-pdf/mupdf-wasm.wasm {
|
||||
add_header Content-Type application/wasm always;
|
||||
alias /opt/react_client/static/viewer-pdf/mupdf-wasm.wasm;
|
||||
}
|
||||
|
||||
location ~^/workspaces-v2/(.+).js {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Connection "";
|
||||
rewrite /workspaces-v2/(.+) /$1 break;
|
||||
proxy_pass http://frontend-svc.workspaces.svc.cluster.local:8080;
|
||||
}
|
||||
|
||||
location @index {
|
||||
add_header Cache-Control 'no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
try_files /static/index.html =404;
|
||||
}
|
||||
|
||||
location ~^/workflows/(.+).js {
|
||||
proxy_http_version 1.1;
|
||||
rewrite /workflows/(.+) /$1 break;
|
||||
proxy_pass http://frontend-service.workflow.svc.cluster.local:8080;
|
||||
}
|
||||
|
||||
location /service-worker.js {
|
||||
try_files /static/$uri @index;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri @index;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
---
|
||||
# Скопировано из apps/django/base/redis-deployment.yaml + redis-service.yaml —
|
||||
# сырой Deployment (не universal-chart, не vault-native), перенесён в
|
||||
# standalone-оверлей, чтобы не зависеть от ../base.
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: redis
|
||||
namespace: django
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: redis
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
containers:
|
||||
- name: redis
|
||||
image: 10.4.10.187:80/library/redis:latest
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: redis
|
||||
namespace: django
|
||||
spec:
|
||||
selector:
|
||||
app: redis
|
||||
ports:
|
||||
- port: 6379
|
||||
targetPort: 6379
|
||||
protocol: TCP
|
||||
@ -1,103 +0,0 @@
|
||||
---
|
||||
# standalone HelmRelease — base vault-native, в ugok Vault не используется.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: s3-proxy
|
||||
namespace: django
|
||||
|
||||
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:
|
||||
s3-proxy:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/s3-proxy:stable
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: s3-proxy
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: s3-proxy-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
envs:
|
||||
- name: AWS_API_ENDPOINT
|
||||
value:
|
||||
_default: http://minio.minio.svc.cluster.local:9000
|
||||
- name: ACCESS_LOG
|
||||
value:
|
||||
_default: "true"
|
||||
- name: CORS_ALLOW_HEADERS
|
||||
value:
|
||||
_default: "Content-Type, Accept-Ranges, Content-Range, Content-Encoding"
|
||||
|
||||
secretEnvs:
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: access_key
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: secret_key
|
||||
- name: AWS_S3_BUCKET
|
||||
secretName:
|
||||
_default: sarex-s3-secret
|
||||
secretKey: bucket
|
||||
@ -1,85 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: srx-admin-frontend
|
||||
namespace: django
|
||||
|
||||
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:
|
||||
srx-admin:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: 10.4.10.187:80/library/srx-admin:prod_638c3442
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: srx-admin-frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu:
|
||||
_default: 25m
|
||||
memory:
|
||||
_default: 100Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: srx-admin-svc
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Скопировано из живого ConfigMap кластера ugok (namespace django).
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: uwsgi-configmap
|
||||
namespace: django
|
||||
data:
|
||||
uwsgi.ini: "[uwsgi]\r\nmodule = config.wsgi:application\r\nDJANGO_SETTINGS_MODULE = config.settings.production\r\nhttp = 0.0.0.0:8000\r\nprocesses = 16\r\nmaster = true\r\nvacuum = true\r\nenable-threads = true\r\nbuffer-size = 65535\r\nstats = :3031\r\nstats-http = true\r\nmemory-report = true\r\nlazy-apps = true\r\nlisten = 128\r\ndisable-write-exception= 0\r\nharakiri = 300\r\nsocket-timeout = 300\r\nchunked-input-timeout = 300\r\nhttp-timeout = 300\r\nworker-reload-mercy = 240\r\nmule-reload-mercy = 240\r\nstatic-map = /static=/opt/sarex/sarex/static/\r\nstatic-map = /media=/media/\r\n"
|
||||
@ -1,17 +0,0 @@
|
||||
---
|
||||
# Скопировано из живого ConfigMap кластера ugok (namespace django) —
|
||||
# монтируется frontend в /opt/react_client/static/config.json.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: zitadel-configmap
|
||||
namespace: django
|
||||
data:
|
||||
config.json: |-
|
||||
{
|
||||
"auth_type": "zitadel",
|
||||
"zitadel": {
|
||||
"client_id": "368538787334147872",
|
||||
"host": "https://ugok-zitadel-sarex.uralmine.com"
|
||||
}
|
||||
}
|
||||
@ -1,102 +0,0 @@
|
||||
---
|
||||
# auth-flow-frontend — компонент приложения auth-flow (apps/auth-flow),
|
||||
# в wb развёрнут в ns django, а не в своём собственном неймспейсе.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: auth-flow-frontend
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
auth-flow-frontend:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/auth-flow-frontend:contour_fe9ea2a3
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: auth-flow-frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: auth-flow-frontend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,465 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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: cr.yandex/crp3ccidau046kdj8g9q/backend:production_7d0ec48b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 2223m
|
||||
memory:
|
||||
_default: 7626Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 495m
|
||||
memory:
|
||||
_default: 6012Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: backend-svc
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: tmp-volume
|
||||
mountPath:
|
||||
_default: /tmp
|
||||
emptyDir: {}
|
||||
|
||||
- name: uwsgi-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/uwsgi.ini
|
||||
subPath:
|
||||
_default: uwsgi.ini
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: uwsgi-configmap
|
||||
items:
|
||||
- key: uwsgi.ini
|
||||
path:
|
||||
_default: uwsgi.ini
|
||||
|
||||
- name: django-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/config/settings/production.py
|
||||
subPath:
|
||||
_default: production.py
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: django-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path:
|
||||
_default: production.py
|
||||
|
||||
- name: kafka-cert-volume
|
||||
mountPath:
|
||||
_default: /usr/local/share/ca-certificates
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: kafka-cert
|
||||
|
||||
envs:
|
||||
- name: GK_ENCRYPTION_KEY
|
||||
value:
|
||||
_default: "zfDjuszywHSbAhY8KJQbESbpUYN74XTs"
|
||||
|
||||
- name: ALLOWED_HOSTS
|
||||
value:
|
||||
_default: "*"
|
||||
|
||||
- name: SERVER_USE_CHANGELOG
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_ZITADEL_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value:
|
||||
_default: "config.settings.production"
|
||||
|
||||
- name: CELERY_REDIS_HOST
|
||||
value:
|
||||
_default: "redis-service"
|
||||
|
||||
- name: CELERY_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
|
||||
- name: DJANGO_REDIS_HOST
|
||||
value:
|
||||
_default: "redis-service"
|
||||
|
||||
- name: DJANGO_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
|
||||
- name: BIMV2_INTERNAL_HOST
|
||||
value:
|
||||
_default: "http://bim-backend-v2-service.bim-api"
|
||||
|
||||
- name: BIMV2_TIMEOUT
|
||||
value:
|
||||
_default: "60"
|
||||
|
||||
- name: JWT_KID
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: PDM_SYNC
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: KC_SYNC_ENABLE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: MEASUREMENTS_HOST
|
||||
value:
|
||||
_default: "http://measurements-service.measurements.svc.cluster.local:8000/api"
|
||||
|
||||
- name: MEASUREMENTS_USE_MEASUREMENTS
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_EXTERNAL_FIND_BY_USERNAME_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
|
||||
- name: SERVER_EXTERNAL_FIND_BY_EMAIL_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
|
||||
- name: SERVER_API_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: SERVER_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: SERVER_SUPERSET_HOST
|
||||
value:
|
||||
_default: "https://bi-srx.wb.ru"
|
||||
|
||||
- name: WORKFLOWS_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: WORKFLOWS_BASE_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: WORKFLOWS_USE
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_S3_STREAM_IMPORT
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_SAVE_DIFF_DEM
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_USE_CLICKHOUSE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_USE_CREATE_COMPARED_GEOTIFF_TASK
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_USE_DJANGO_STORAGE
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_USE_METASHAPE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_CHANGELOG_MODE_SYSTEM_LOG
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_CHANGELOG_MODE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_DJANGO_URLS
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: EAV_ENABLE
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_CHUNKED_PATH
|
||||
value:
|
||||
_default: "/tmp/chunked_uploads/%Y/%m/%d"
|
||||
|
||||
- name: SERVER_HIDE_USER_SCROLL_PERMISSIONS
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_USE_WRORKFLOW_STATUS
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: ZITADEL_HOST
|
||||
value:
|
||||
_default: "https://zitadel-srx.wb.ru"
|
||||
|
||||
- name: SERVER_KAFKA_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
|
||||
- name: KAFKA_TOPICS
|
||||
value:
|
||||
_default: '{"planning": "message-hub-stage", "ams-sync": "ams-sync"}'
|
||||
|
||||
- name: KAFKA_BOOTSTRAP_SERVERS
|
||||
value:
|
||||
_default: '["wb-prod-kafka-bootstrap.kafka.svc.cluster.local:9093"]'
|
||||
|
||||
- name: KAFKA_SECURITY_PROTOCOL
|
||||
value:
|
||||
_default: "SSL"
|
||||
|
||||
- name: KAFKA_SASL_MECHANISM
|
||||
value:
|
||||
_default: "SCRAM-SHA-512"
|
||||
|
||||
- name: KAFKA_SSL_CAFILE
|
||||
value:
|
||||
_default: "/usr/local/share/ca-certificates/kafka.crt"
|
||||
|
||||
- name: S3_HOST
|
||||
value:
|
||||
_default: "http://10.49.10.90:9000"
|
||||
|
||||
- name: KC_USE_REDIRECT_LOGOUT
|
||||
value:
|
||||
_default: "False"
|
||||
|
||||
secretEnvs:
|
||||
- name: SERVER_SUPERSET_JWT_SECRET
|
||||
secretName:
|
||||
_default: "superset-jwt-secret"
|
||||
secretKey: "jwt_secret"
|
||||
|
||||
- name: ZITADEL_ACCESS_TOKEN
|
||||
secretName:
|
||||
_default: "zitadel-secret"
|
||||
secretKey: "access_token"
|
||||
|
||||
- name: KAFKA_SASL_PLAIN_USERNAME
|
||||
secretName:
|
||||
_default: "kafka-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: KAFKA_SASL_PLAIN_PASSWORD
|
||||
secretName:
|
||||
_default: "kafka-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: KC_CLIENT_ID
|
||||
secretName:
|
||||
_default: "gatekeeper-secret"
|
||||
secretKey: "client_id"
|
||||
|
||||
- name: KC_CLIENT_SECRET
|
||||
secretName:
|
||||
_default: "gatekeeper-secret"
|
||||
secretKey: "client_secret"
|
||||
|
||||
- name: AWS_S3_ENDPOINT_URL
|
||||
secretName:
|
||||
_default: "s3-secret"
|
||||
secretKey: "endpoint"
|
||||
|
||||
- name: CELERY_RABBITMQ_HOST
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: CELERY_RABBITMQ_USER
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: CELERY_RABBITMQ_PASSWORD
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: CELERY_RABBITMQ_VHOST
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "vhost"
|
||||
|
||||
- name: DJANGO_POSTGRES_HOST
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: DJANGO_POSTGRES_PORTS
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "port"
|
||||
|
||||
- name: DJANGO_POSTGRES_USER
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: DJANGO_POSTGRES_PASSWORD
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: DJANGO_POSTGRES_DATABASE
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "database"
|
||||
|
||||
- name: DJANGO_RABBIT_HOSTNAME
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: DJANGO_RABBIT_USER
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: DJANGO_RABBIT_PASS
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: DJANGO_RABBIT_VHOST
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "vhost"
|
||||
|
||||
- name: JWT_PRIVATE_KEY
|
||||
secretName:
|
||||
_default: "backend-secret"
|
||||
secretKey: "ssh_private.key"
|
||||
|
||||
- name: JWT_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: "backend-secret"
|
||||
secretKey: "ssh_public.key"
|
||||
|
||||
- name: S3_BUCKET
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "bucket"
|
||||
|
||||
- name: S3_LOGIN
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "login"
|
||||
|
||||
- name: S3_PASSWORD
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "password"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,440 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: celery
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
celery:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/backend:production_7d0ec48b
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: celery
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
command:
|
||||
_default: ["celery", "-A", "config", "worker", "-B", "-l", "info", "-E", "-Q", "default", "-n", "default_worker.%h", "--concurrency=2"]
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 1385Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 1107Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: false
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: tmp-volume
|
||||
mountPath:
|
||||
_default: /tmp
|
||||
emptyDir: {}
|
||||
|
||||
- name: uwsgi-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/uwsgi.ini
|
||||
subPath:
|
||||
_default: uwsgi.ini
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: uwsgi-configmap
|
||||
items:
|
||||
- key: uwsgi.ini
|
||||
path:
|
||||
_default: uwsgi.ini
|
||||
|
||||
- name: django-configmap
|
||||
mountPath:
|
||||
_default: /opt/sarex/config/settings/production.py
|
||||
subPath:
|
||||
_default: production.py
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: django-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path:
|
||||
_default: production.py
|
||||
|
||||
- name: kafka-cert-volume
|
||||
mountPath:
|
||||
_default: /usr/local/share/ca-certificates
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: kafka-cert
|
||||
|
||||
envs:
|
||||
- name: GK_ENCRYPTION_KEY
|
||||
value:
|
||||
_default: "zfDjuszywHSbAhY8KJQbESbpUYN74XTs"
|
||||
|
||||
- name: ALLOWED_HOSTS
|
||||
value:
|
||||
_default: "*"
|
||||
|
||||
- name: SERVER_USE_CHANGELOG
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_ZITADEL_ENABLED
|
||||
value:
|
||||
_default: "False"
|
||||
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value:
|
||||
_default: "config.settings.production"
|
||||
|
||||
- name: CELERY_REDIS_HOST
|
||||
value:
|
||||
_default: "redis-service"
|
||||
|
||||
- name: CELERY_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
|
||||
- name: DJANGO_REDIS_HOST
|
||||
value:
|
||||
_default: "redis-service"
|
||||
|
||||
- name: CACHE_HOST
|
||||
value:
|
||||
_default: "redis.pm.svc.cluster.local"
|
||||
|
||||
- name: DJANGO_REDIS_PORT
|
||||
value:
|
||||
_default: "6379"
|
||||
|
||||
- name: BIMV2_INTERNAL_HOST
|
||||
value:
|
||||
_default: "http://bim-backend-v2-service.bim-api"
|
||||
|
||||
- name: BIMV2_TIMEOUT
|
||||
value:
|
||||
_default: "60"
|
||||
|
||||
- name: JWT_KID
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: PDM_SYNC
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: KC_SYNC_ENABLE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: MEASUREMENTS_HOST
|
||||
value:
|
||||
_default: "http://measurements-service.measurements.svc.cluster.local:8000/api"
|
||||
|
||||
- name: MEASUREMENTS_USE_MEASUREMENTS
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_API_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: SERVER_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: WORKFLOWS_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: WORKFLOWS_BASE_HOST
|
||||
value:
|
||||
_default: "https://srx.wb.ru"
|
||||
|
||||
- name: WORKFLOWS_USE
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_S3_STREAM_IMPORT
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_SAVE_DIFF_DEM
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_USE_CLICKHOUSE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_USE_CREATE_COMPARED_GEOTIFF_TASK
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_USE_DJANGO_STORAGE
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_USE_METASHAPE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_CHANGELOG_MODE_SYSTEM_LOG
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: ZITADEL_HOST
|
||||
value:
|
||||
_default: "https://zitadel-srx.wb.ru"
|
||||
|
||||
- name: SERVER_KAFKA_ENABLED
|
||||
value:
|
||||
_default: "True"
|
||||
|
||||
- name: KAFKA_TOPICS
|
||||
value:
|
||||
_default: '{"planning": "message-hub-stage", "ams-sync": "ams-sync"}'
|
||||
|
||||
- name: KAFKA_BOOTSTRAP_SERVERS
|
||||
value:
|
||||
_default: '["wb-prod-kafka-bootstrap.kafka.svc.cluster.local:9093"]'
|
||||
|
||||
- name: KAFKA_SECURITY_PROTOCOL
|
||||
value:
|
||||
_default: "SSL"
|
||||
|
||||
- name: KAFKA_SASL_MECHANISM
|
||||
value:
|
||||
_default: "SCRAM-SHA-512"
|
||||
|
||||
- name: KAFKA_SSL_CAFILE
|
||||
value:
|
||||
_default: "/usr/local/share/ca-certificates/kafka.crt"
|
||||
|
||||
- name: SERVER_CHANGELOG_MODE
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_DJANGO_URLS
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: EAV_ENABLE
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_CHECK_IMPORT_HASH
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: SERVER_CHUNKED_PATH
|
||||
value:
|
||||
_default: "/tmp/chunked_uploads/%Y/%m/%d"
|
||||
|
||||
- name: SERVER_HIDE_USER_SCROLL_PERMISSIONS
|
||||
value:
|
||||
_default: "0"
|
||||
|
||||
- name: SERVER_USE_WRORKFLOW_STATUS
|
||||
value:
|
||||
_default: "1"
|
||||
|
||||
- name: S3_HOST
|
||||
value:
|
||||
_default: "http://10.49.10.90:9000"
|
||||
|
||||
- name: KC_USE_REDIRECT_LOGOUT
|
||||
value:
|
||||
_default: "False"
|
||||
|
||||
secretEnvs:
|
||||
- name: ZITADEL_ACCESS_TOKEN
|
||||
secretName:
|
||||
_default: "zitadel-secret"
|
||||
secretKey: "access_token"
|
||||
|
||||
- name: KAFKA_SASL_PLAIN_USERNAME
|
||||
secretName:
|
||||
_default: "kafka-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: KAFKA_SASL_PLAIN_PASSWORD
|
||||
secretName:
|
||||
_default: "kafka-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: KC_CLIENT_ID
|
||||
secretName:
|
||||
_default: "gatekeeper-secret"
|
||||
secretKey: "client_id"
|
||||
|
||||
- name: KC_CLIENT_SECRET
|
||||
secretName:
|
||||
_default: "gatekeeper-secret"
|
||||
secretKey: "client_secret"
|
||||
|
||||
- name: AWS_S3_ENDPOINT_URL
|
||||
secretName:
|
||||
_default: "s3-secret"
|
||||
secretKey: "endpoint"
|
||||
|
||||
- name: CELERY_RABBITMQ_HOST
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: CELERY_RABBITMQ_USER
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: CELERY_RABBITMQ_PASSWORD
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: CELERY_RABBITMQ_VHOST
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "vhost"
|
||||
|
||||
- name: DJANGO_POSTGRES_HOST
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: DJANGO_POSTGRES_PORTS
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "port"
|
||||
|
||||
- name: DJANGO_POSTGRES_USER
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: DJANGO_POSTGRES_PASSWORD
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: DJANGO_POSTGRES_DATABASE
|
||||
secretName:
|
||||
_default: "postgres-secret"
|
||||
secretKey: "database"
|
||||
|
||||
- name: DJANGO_RABBIT_HOSTNAME
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "host"
|
||||
|
||||
- name: DJANGO_RABBIT_USER
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "username"
|
||||
|
||||
- name: DJANGO_RABBIT_PASS
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: DJANGO_RABBIT_VHOST
|
||||
secretName:
|
||||
_default: "rabbitmq-secret"
|
||||
secretKey: "vhost"
|
||||
|
||||
- name: JWT_PRIVATE_KEY
|
||||
secretName:
|
||||
_default: "backend-secret"
|
||||
secretKey: "ssh_private.key"
|
||||
|
||||
- name: JWT_PUBLIC_KEY
|
||||
secretName:
|
||||
_default: "backend-secret"
|
||||
secretKey: "ssh_public.key"
|
||||
|
||||
- name: S3_BUCKET
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "bucket"
|
||||
|
||||
- name: S3_LOGIN
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "login"
|
||||
|
||||
- name: S3_PASSWORD
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "password"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,130 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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/sarex-frontend-dev:contour_5.22.3
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: frontend
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 66m
|
||||
memory:
|
||||
_default: 61Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 39Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: frontend-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: nginx-configmap
|
||||
mountPath:
|
||||
_default: /etc/nginx/nginx.conf
|
||||
subPath:
|
||||
_default: nginx.conf
|
||||
configMap:
|
||||
name:
|
||||
_default: nginx-configmap
|
||||
items:
|
||||
- key: nginx.conf
|
||||
path:
|
||||
_default: nginx.conf
|
||||
|
||||
- name: zitadel-configmap
|
||||
mountPath:
|
||||
_default: /opt/react_client/static/config.json
|
||||
subPath:
|
||||
_default: config.json
|
||||
readOnly:
|
||||
_default: true
|
||||
configMap:
|
||||
name:
|
||||
_default: zitadel-configmap
|
||||
items:
|
||||
- key: config.json
|
||||
path:
|
||||
_default: config.json
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,132 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: gatekeeper
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
gatekeeper:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/gatekeeper:2.12.1
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: gatekeeper
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8080
|
||||
|
||||
args:
|
||||
_default:
|
||||
- "--discovery-url=https://keycloak.wildberries.ru/realms/infrastructure/.well-known/openid-configuration"
|
||||
- "--listen=0.0.0.0:8080"
|
||||
- "--enable-logging=true"
|
||||
- "--upstream-url=http://frontend-service.django.svc.cluster.local:80/"
|
||||
- "--enable-refresh-tokens=true"
|
||||
- "--enable-session-cookies=true"
|
||||
- "--verbose"
|
||||
- "--resources=uri=/*"
|
||||
- "--encryption-key=zfDjuszywHSbAhY8KJQbESbpUYN74XTs"
|
||||
- "--secure-cookie=false"
|
||||
- "--cors-origins=*"
|
||||
- "--skip-openid-provider-tls-verify=true"
|
||||
- "--enable-default-deny=false"
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: gatekeeper-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 8080
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
envs:
|
||||
- name: PROXY_REDIRECTION_URL
|
||||
value:
|
||||
_default: "https://lk.srx.wb.ru"
|
||||
|
||||
secretEnvs:
|
||||
- name: PROXY_CLIENT_ID
|
||||
secretName:
|
||||
_default: "gatekeeper-secret"
|
||||
secretKey: "client_id"
|
||||
|
||||
- name: PROXY_CLIENT_SECRET
|
||||
secretName:
|
||||
_default: "gatekeeper-secret"
|
||||
secretKey: "client_secret"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,38 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kafka-cert
|
||||
namespace: django
|
||||
data:
|
||||
kafka.crt: |
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFLTCCAxWgAwIBAgIUYDZPxGRsr7IiqHEmfd07QTQlOKYwDQYJKoZIhvcNAQEN
|
||||
BQAwLTETMBEGA1UECgwKaW8uc3RyaW16aTEWMBQGA1UEAwwNY2x1c3Rlci1jYSB2
|
||||
MDAeFw0yNTEyMTYxNDM0NTVaFw0yNjEyMTYxNDM0NTVaMC0xEzARBgNVBAoMCmlv
|
||||
LnN0cmltemkxFjAUBgNVBAMMDWNsdXN0ZXItY2EgdjAwggIiMA0GCSqGSIb3DQEB
|
||||
AQUAA4ICDwAwggIKAoICAQCfzDZhEzw2pbU5Xpu8OzD+3iQG+DVjU8PQWWQEF27h
|
||||
yjohDkUr3zCZtW7xMKWKUNxBgrKsfe4TDOQN8cij3cS9sy0So+UhMeF7Bq9PU1Yd
|
||||
bmTRq8q1PiuNUkiCGJ5wrb3+NZvVxZLJUIFgiealsRw80MgMWWSzy0I35T2Edn/a
|
||||
DU4jhlgQxyzQ621+oGP0n28gCjmm6pCq2tkj/Z8WTdu1gOWyRdK02a2uE2Ts2nLa
|
||||
Di32GaZrIbIuD/WUd6Ek66uCeJvh2CT7s+SqgtMbtT7gibUuPQ3hk1VGQsjy22l3
|
||||
hUNpLu86nrwbuf21mY55KnLOcaVq1ag1TpIIKfZAL/KWFCGZ6H6kwEIbCAL0Hei7
|
||||
cJ2Wm2/qlzKUeU869M7YybZAfXl/t6XT4QgFgje+42N980vy5A4GhWi1Z7lPqqOe
|
||||
jPGBstkRZybKz1sTk87+oJx82iQU/ozVmzjSEK1SoYRNbvug8PNpxmPoPnJ2flgG
|
||||
t2q2+2ZQP3f1aAHVcZ3U5+hWlRmKPXzjrJv7gnhuvqJl7OwB50y+yWiVfZ9xrYl2
|
||||
EpX+yHuFFK+9NnB5taUK8Fz+hQaLU8J4q7P0bRqkoI+LdcEErjuDT/eI2d5+Ql8K
|
||||
/JkV823hX2WNB9bdaQ24BelVUbsxGpR7ms6KWrM11kHnbzUlEM+AxZES6F7Qbr55
|
||||
TwIDAQABo0UwQzAdBgNVHQ4EFgQUM7hshx7e9TFEN82Pf446aBrJUA4wEgYDVR0T
|
||||
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIB
|
||||
AFNHFGPDxY966fz0dxDFFSfeo47y7XQZMK9xAwH73cQoSeqx+IMxzgM8nfJQ9XMN
|
||||
PeLwVRZ7pvRee2ZhUPglBSTHnW2rvfmLBOO9xyKZxRsCkoFxuHH9xfM7bFWb96R6
|
||||
fGrOdEZDB3yj00T+tkubwqt+/dUhQUj8juwyPs55WMb/0BIbapaoQ6QOP13CaXDV
|
||||
ZmAfsEEIBkNxfq7GTr/z0Rq0B4+9FxAf3Jrsmi/dYoFD/prHsvBDkYw1daoFyp5C
|
||||
tbctvB9wtphnCCynekt8UBvpVKHUU/xaUa09TQTToXjBbV1SZeIOHNG0MNbWa4sz
|
||||
AL/cpXdq1EAxiTeAVT9XhCwhe/xJvFZIWuFLmW3J+ZxrOUCKieCYpTqBY2tBkkDY
|
||||
//egic787yTR6zxqQNSzvNU5LhzrN7lu+KHGM06T35+HvpzgPPiRCzsxO62p63op
|
||||
mq04K31yYZgLiqeAj5W+rioRGJNn4TXJpH9KIrzmGM7lVWLYWMAKeZU4r1lDUdcu
|
||||
7jsBH8BRJWJeVK3xVw2HB3lk7Xn0WrR92adeYQ3f0vKbMIAVUnSJ3yCKJ4NMFSki
|
||||
j78nx2mi/G0RhUPGZ9hhLXQKj9BtbpEnwpbGWtf0ShtVOxD/HKLCr7koBtW9TMPS
|
||||
9K0sJhE5VjsQLkDDu9p3GdRcuLNA/oa7xFvRFtqGFsLj
|
||||
-----END CERTIFICATE-----
|
||||
@ -1,20 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: django
|
||||
resources:
|
||||
- django-configmap.yaml
|
||||
- uwsgi-configmap.yaml
|
||||
- zitadel-configmap.yaml
|
||||
- nginx-configmap.yaml
|
||||
- kafka-cert-configmap.yaml
|
||||
- backend.yaml
|
||||
- celery.yaml
|
||||
- export-project.yaml
|
||||
- frontend.yaml
|
||||
- gatekeeper.yaml
|
||||
- measurement.yaml
|
||||
- redis.yaml
|
||||
- s3-proxy.yaml
|
||||
- srx-admin.yaml
|
||||
- auth-flow-frontend.yaml
|
||||
@ -1,124 +0,0 @@
|
||||
---
|
||||
# measurement — компонент приложения measurements (apps/measurements),
|
||||
# в wb развёрнут в ns django, а не в своём собственном неймспейсе.
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: measurement
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
measurement:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/measurements:prod_ece72657
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: measurement
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 761Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 596Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: measurement-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8000
|
||||
|
||||
targetPort:
|
||||
_default: 8000
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: tmp-volume
|
||||
mountPath:
|
||||
_default: /tmp
|
||||
emptyDir: {}
|
||||
|
||||
envs:
|
||||
- name: DJANGO_HOST
|
||||
value:
|
||||
_default: "https://lk.srx.wb.ru:30443"
|
||||
|
||||
- name: S3_JSON_FILE
|
||||
value:
|
||||
_default: "/opt/cred_s3.json"
|
||||
|
||||
secretEnvs:
|
||||
- name: S3_JSON_SETTINGS
|
||||
secretName:
|
||||
_default: "s3-json-settings"
|
||||
secretKey: "S3_JSON_SETTINGS"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,180 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-configmap
|
||||
namespace: django
|
||||
data:
|
||||
nginx.conf: |
|
||||
worker_processes auto;
|
||||
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
use epoll;
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
|
||||
# Basic Settings
|
||||
large_client_header_buffers 8 128k;
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 300;
|
||||
types_hash_max_size 2048;
|
||||
client_max_body_size 5000M;
|
||||
client_header_buffer_size 5M;
|
||||
# server_tokens off;
|
||||
# server_names_hash_bucket_size 64;
|
||||
# server_name_in_redirect off;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Logging Settings
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
# GZIP Settings
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_buffers 16 8k;
|
||||
gzip_http_version 1.1;
|
||||
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
root /opt/react_client/;
|
||||
|
||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||
add_header 'Access-Control-Allow-Methods' '*' always;
|
||||
add_header 'Access-Control-Allow-Headers' '*' always;
|
||||
|
||||
location = /static/index.bundle.js {
|
||||
add_header Cache-Control 'no-store no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
}
|
||||
|
||||
location = /static/pdf-runtime/assets/mupdf-wasm.wasm {
|
||||
alias /opt/react_client/static/pdf-runtime/assets/mupdf-wasm.wasm;
|
||||
add_header Content-Type application/wasm always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/static/viewer-pdf/mupdf-wasm.js {
|
||||
alias /opt/react_client/static/viewer-pdf/mupdf-wasm.js;
|
||||
add_header Content-Type application/javascript always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/mupdf.worker-3.3.9.js {
|
||||
alias /opt/react_client/static/pdf-runtime/mupdf.worker-3.3.9.js;
|
||||
add_header Content-Type application/javascript always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/static/viewer-pdf/mupdf.js {
|
||||
alias /opt/react_client/static/viewer-pdf/mupdf.js;
|
||||
add_header Content-Type application/javascript always;
|
||||
add_header Cache-Control "public, max-age=31536000, immutable" always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
||||
add_header Access-Control-Allow-Headers "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" always;
|
||||
}
|
||||
|
||||
location = /workspaces-v2/worker/static/viewer-pdf/mupdf-wasm.wasm {
|
||||
add_header Content-Type application/wasm always;
|
||||
alias /opt/react_client/static/viewer-pdf/mupdf-wasm.wasm;
|
||||
}
|
||||
# location ~^/api/pm/ {
|
||||
# #rewrite /api/(.+) /$1 break;
|
||||
# proxy_set_header Host $host;
|
||||
# proxy_pass http://backend-service.pm.svc.cluster.local:8000;
|
||||
# }
|
||||
|
||||
location ~^/media/ {
|
||||
rewrite ^/media/(.*)$ /$1 break;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://s3-proxy-service:80;
|
||||
}
|
||||
|
||||
location ~^/api/v1/documents/ {
|
||||
#rewrite /api/(.+) /$1 break;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://documentations-filestream.documentations.svc.cluster.local:8080;
|
||||
}
|
||||
|
||||
location ~^/(api|admin)/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://backend:8000;
|
||||
}
|
||||
|
||||
# location ~^/flows/static/ {
|
||||
# rewrite /flows/static/(.+) /$1 break;
|
||||
# proxy_pass http://frontend-service.flows:80;
|
||||
# }
|
||||
|
||||
# location = ~^/orchestrator/ {
|
||||
# rewrite ^/orchestrator$ /api/ break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
# location = ~^/orchestrator/api/process {
|
||||
# rewrite ^/orchestrator/api/process$ /api/process break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
# location ~ ^/orchestrator/api/process/(.*)$ {
|
||||
# rewrite ^/orchestrator/api/process/(.*)$ /api/process/$1 break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
# location = ~^/orchestrator/api/sign {
|
||||
# rewrite ^/orchestrator/api/sign$ /api/sign break;
|
||||
# proxy_pass http://cde.orchestrator.svc.cluster.local:8080;
|
||||
# }
|
||||
|
||||
|
||||
location ~^/workspaces-v2/(.+).js {
|
||||
rewrite /workspaces-v2/(.+) /$1 break;
|
||||
proxy_pass http://workspaces-v2-frontend-static-service.workspaces.svc.cluster.local:8080;
|
||||
}
|
||||
|
||||
location @index {
|
||||
add_header Cache-Control 'no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
try_files /static/index.html =404;
|
||||
}
|
||||
|
||||
location ~^/workflows/(.+).js {
|
||||
rewrite /workflows/(.+) /$1 break;
|
||||
proxy_pass http://frontend-service.workflow.svc.cluster.local:8080;
|
||||
}
|
||||
location /service-worker.js {
|
||||
try_files /static/$uri @index;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri @index;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,100 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: redis
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
redis:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/redis:latest
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: redis
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 6379
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: redis-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 6379
|
||||
|
||||
targetPort:
|
||||
_default: 6379
|
||||
|
||||
portName:
|
||||
_default: tcp
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,129 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: s3-proxy
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
s3-proxy:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/s3-proxy:stable
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: s3-proxy
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: s3-proxy-service
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
envs:
|
||||
- name: AWS_API_ENDPOINT
|
||||
value:
|
||||
_default: "http://10.49.10.90:9000"
|
||||
|
||||
- name: ACCESS_LOG
|
||||
value:
|
||||
_default: "true"
|
||||
|
||||
- name: CORS_ALLOW_HEADERS
|
||||
value:
|
||||
_default: "Content-Type, Accept-Ranges, Content-Range, Content-Encoding"
|
||||
|
||||
secretEnvs:
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "login"
|
||||
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "password"
|
||||
|
||||
- name: AWS_S3_BUCKET
|
||||
secretName:
|
||||
_default: "sarex-media-storage-secret"
|
||||
secretKey: "bucket"
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,107 +0,0 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: srx-admin
|
||||
namespace: django
|
||||
|
||||
spec:
|
||||
interval: 10m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: universal-chart
|
||||
version: "0.1.7"
|
||||
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:
|
||||
srx-admin:
|
||||
enabled: true
|
||||
|
||||
image:
|
||||
name:
|
||||
_default: cr.yandex/crp3ccidau046kdj8g9q/srx-admin:prod_ee0a6717
|
||||
pullPolicy:
|
||||
_default: IfNotPresent
|
||||
|
||||
deployment:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: srx-admin
|
||||
|
||||
replicaCount:
|
||||
_default: 1
|
||||
|
||||
port:
|
||||
_default: 80
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu:
|
||||
_default: 20m
|
||||
memory:
|
||||
_default: 48Mi
|
||||
requests:
|
||||
cpu:
|
||||
_default: 10m
|
||||
memory:
|
||||
_default: 32Mi
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
name:
|
||||
_default: srx-admin-svc
|
||||
|
||||
type:
|
||||
_default: ClusterIP
|
||||
|
||||
port:
|
||||
_default: 8080
|
||||
|
||||
targetPort:
|
||||
_default: 80
|
||||
|
||||
portName:
|
||||
_default: http
|
||||
|
||||
imagePullSecrets:
|
||||
enabled:
|
||||
_default: true
|
||||
name:
|
||||
_default: dockerhub
|
||||
|
||||
volumes:
|
||||
_default:
|
||||
- name: tmp-volume
|
||||
mountPath:
|
||||
_default: /tmp
|
||||
emptyDir: {}
|
||||
|
||||
commitSha: ""
|
||||
gitlabUri: ""
|
||||
gitlabJobUrl: ""
|
||||
owner: ""
|
||||
@ -1,31 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: uwsgi-configmap
|
||||
namespace: django
|
||||
data:
|
||||
uwsgi.ini: |
|
||||
[uwsgi]
|
||||
module = config.wsgi:application
|
||||
DJANGO_SETTINGS_MODULE = config.settings.production
|
||||
http = 0.0.0.0:8000
|
||||
processes = 16
|
||||
master = true
|
||||
vacuum = true
|
||||
enable-threads = true
|
||||
buffer-size = 65535
|
||||
stats = :3031
|
||||
stats-http = true
|
||||
memory-report = true
|
||||
lazy-apps = true
|
||||
listen = 128
|
||||
disable-write-exception= 0
|
||||
harakiri = 300
|
||||
socket-timeout = 300
|
||||
chunked-input-timeout = 300
|
||||
http-timeout = 300
|
||||
worker-reload-mercy = 240
|
||||
mule-reload-mercy = 240
|
||||
static-map = /static=/opt/sarex/sarex/static/
|
||||
static-map = /media=/media/
|
||||
@ -1,15 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: zitadel-configmap
|
||||
namespace: django
|
||||
data:
|
||||
config.json: |-
|
||||
{
|
||||
"auth_type": "zitadel",
|
||||
"zitadel": {
|
||||
"client_id": "363741990556356237",
|
||||
"host": "https://zitadel-srx.wb.ru"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user