116 lines
4.5 KiB
YAML
116 lines
4.5 KiB
YAML
---
|
||
# Каталог развёртывания на хосте (домашка root)
|
||
deploy_dir: /root/sarex
|
||
|
||
# Источник файлов — корень репозитория iac (playbook лежит в aero/)
|
||
deploy_src_root: "{{ playbook_dir }}/.."
|
||
|
||
# Домены верхнего nginx (попадают в .env и в SAN сертификата)
|
||
platform_domain: sarex.local.lonsdaleites.ru
|
||
admin_domain: admin.sarex.local.lonsdaleites.ru
|
||
minio_domain: minio.sarex.local.lonsdaleites.ru
|
||
|
||
# Самоподписанный TLS-сертификат
|
||
cert_days: 365
|
||
cert_dir: "{{ deploy_dir }}/nginx/certs"
|
||
|
||
# Переменные-пароли: им генерируются стойкие значения взамен слабых дефолтов.
|
||
sarex_secret_vars:
|
||
- K3S_TOKEN
|
||
- GITEA_ADMIN_PASSWORD
|
||
- SAREX_POSTGRES_PASSWORD
|
||
- SAREX_DJANGO_DB_PASSWORD
|
||
- SAREX_PROCESSING_DB_PASSWORD
|
||
- SAREX_BIM_DB_PASSWORD
|
||
- SAREX_WORKSPACE_DB_PASSWORD
|
||
- SAREX_RABBITMQ_PASSWORD
|
||
- SAREX_MINIO_ROOT_PASSWORD
|
||
- SAREX_MINIO_APP_PASSWORD
|
||
|
||
secret_length: 24
|
||
|
||
# Хранилище секретов на control-node (persist + переиспользование). Gitignored.
|
||
secrets_store: "{{ playbook_dir }}/.secrets"
|
||
|
||
# RSA-ключи JWT backend (RS512). Генерируются на control-node, persist в secrets_store.
|
||
jwt_private_key_path: "{{ secrets_store }}/{{ inventory_hostname }}/jwt_private.pem"
|
||
jwt_public_key_path: "{{ secrets_store }}/{{ inventory_hostname }}/jwt_public.pem"
|
||
|
||
# Приватный реестр образов и ключ для входа (json_key)
|
||
registry_host: cr.yandex
|
||
registry_username: json_key
|
||
# Windows: C:\Users\user\.ssh\local\authorized_key.json → в WSL это /mnt/c/...
|
||
registry_key_src: /mnt/c/Users/user/.ssh/local/authorized_key.json
|
||
|
||
# Поднимать стек (docker compose up -d). Требует запущенной службы docker и
|
||
# docker login в cr.yandex — по умолчанию выключено.
|
||
sarex_compose_up: false
|
||
compose_cmd: "docker compose"
|
||
|
||
# --- GitOps-подложка контура (k3s + gitea + vault + flux) -------------------
|
||
# Параметры gitea и Flux. Попадают в .env (их читает docker-compose) — менять
|
||
# нужно здесь, а не в .env.example, иначе перезапишется при следующем деплое.
|
||
gitea_admin_user: sarex
|
||
gitea_admin_email: "{{ gitea_admin_user }}@{{ platform_domain }}"
|
||
gitea_org: infra
|
||
gitea_repo: iac
|
||
# Ветка и путь, за которыми следит Flux внутри репозитория в gitea.
|
||
aero_git_branch: master
|
||
aero_flux_path: clusters/aero
|
||
|
||
# Поднимается отдельно от прикладного стека: образы публичные, docker login в
|
||
# cr.yandex не нужен. По умолчанию выключено, включает `uv run poe platform`.
|
||
aero_platform_up: false
|
||
|
||
# Волна 1: долгоживущие сервисы, которым нужно успеть стать healthy.
|
||
# k3s-server при первом старте создаёт ./k3s/kubeconfig.yaml — его ждёт волна 2.
|
||
aero_platform_services_wave1:
|
||
- k3s-server
|
||
- k3s-worker-1
|
||
- k3s-worker-2
|
||
- k3s-worker-3
|
||
- gitea
|
||
|
||
# Волна 2: провижининг и bootstrap. gitea-init, flux-k8s-init и flux-bootstrap
|
||
# одноразовые (restart: "no"), vault-init живёт постоянно и распечатывает Vault
|
||
# после ребута хоста.
|
||
aero_platform_services_wave2:
|
||
- gitea-init
|
||
- flux-k8s-init
|
||
- vault
|
||
- vault-init
|
||
- flux-bootstrap
|
||
|
||
# Ноды k3s. Каждой нужен свой каталог PVC-хранилища на хосте: провижинер
|
||
# local-path node-local, и PV навсегда привязывается к ноде через nodeAffinity.
|
||
aero_k3s_nodes:
|
||
- server
|
||
- worker-1
|
||
- worker-2
|
||
- worker-3
|
||
|
||
# Сколько ждать появления kubeconfig от k3s-server, секунд.
|
||
aero_kubeconfig_timeout: 180
|
||
|
||
# Сервисы приложения, поднимаемые при sarex_compose_up (depends_on тянет
|
||
# зависимости и порядок). k3s/gitea намеренно не поднимаем.
|
||
sarex_services:
|
||
# k3s + провижининг DNS-моста (нужны engine'у до старта)
|
||
- k3s-server
|
||
- processing-k8s-init
|
||
- postgres
|
||
- postgres-init
|
||
- redis
|
||
- rabbitmq
|
||
- minio
|
||
- minio-init
|
||
- measurements
|
||
- s3-proxy
|
||
- backend
|
||
- celery
|
||
- frontend
|
||
- processing-api
|
||
- processing-frontend
|
||
- engine
|
||
- nginx
|