# ============================================================================
# workflows-engine (kubernetes-engine) — пример переменных окружения
# Конфигурация читается через cleanenv (github.com/ilyakaznacheev/cleanenv)
# из переменных окружения. Префикса нет. Значения по умолчанию — из кода.
# Сервис — фоновый оркестратор без REST API (только pprof на :8081).
# ============================================================================

# ----- App / Logging -----
APP_NAME=kubernetes-engine
APP_VERSION=v1
# Уровень логирования: debug | info | warn | error
LOG_LEVEL=info

# ----- Database (PostgreSQL) -----
POSTGRES_ADDRESS=localhost
POSTGRES_PORT=5432
POSTGRES_DB=processing_db
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_POOL_SIZE=20
# Включить TLS-подключение к БД
POSTGRES_SSL_USE=false
# CA-сертификат (PEM) для TLS-подключения к БД (значение сертификата)
YC-PG-CERTIFICATE=
# Логирование SQL-запросов
ENABLE_SQL_QUERY=true

# ----- Executors / Workers -----
# Включить AMQP-исполнитель (RabbitMQ). Требует секцию RabbitMQ ниже.
ENABLE_AMQP_EXECUTOR=0
# Включить Kubernetes-исполнитель (запуск задач как Job'ов). По умолчанию true.
ENABLE_KUBERNETES_EXECUTOR=1
COUNT_RUNNING_WORKERS=1
COUNT_CANCELING_WORKERS=1
COUNT_HANDLE_JOB_WORKERS=1

# ----- Kubernetes -----
# Namespace, в котором создаются Job'ы задач
JOBS_NAMESPACE=processing-testing
# Путь к kubeconfig. Если ПУСТО — используется in-cluster конфигурация.
KUBE_CONFIG=
# Контекст kubeconfig (для out-of-cluster)
KUBE_CONTEXT=
# Адрес API-сервера кластера (для out-of-cluster, с InsecureSkipTLSVerify)
KUBE_ADDR=

# ----- RabbitMQ (только при ENABLE_AMQP_EXECUTOR=1) -----
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=sarex
RABBITMQ_PASS=sarex
RABBITMQ_VHOST=/
RABBITMQ_USE_SSL=false
RABBITMQ_CERTIFICATE=
RABBITMQ_CREATE_EXCHANGE=autodesk.inputMessage
RABBITMQ_CANCEL_EXCHANGE=autodesk.cancelMessage
RABBITMQ_CREATE_ROUTING_KEY=converting
RABBITMQ_CANCEL_TOPIC=cancel
RABBITMQ_COMPLETENESS_EXCHANGE=autodesk.outputMessage
RABBITMQ_COMPLETENESS_TOPIC=output

# ----- Pooling / Workflows -----
# Лимит одновременно обрабатываемых workflow при выборке
MAX_WORKFLOWS_LIMIT=100
# Максимум одновременно выполняющихся Job'ов
MAX_RUNNING_JOBS=200
# Глубина выборки задач в часах (нужно для FIFO; 168 ч = 7 дней)
DEFAULT_GET_SINCE_LAST_HOURS=168
# Приоритет обрабатываемых workflow: default | high | low (задаёт «роль» инстанса)
WORKFLOW_PRIORITY=default

# ----- Планирование подов (NodeSelector / Tolerations / requests) -----
# CPU/Memory для high-resources / persistent
CPU_COUNT=5
MEMORY_GI=20
# CPU/Memory для low-resources
CPU_COUNT_LOW_RESOURCES=2
MEMORY_GI_LOW_RESOURCES=10
# CPU/Memory для super-high-resources
CPU_COUNT_HIGH_MEM=10
MEMORY_GI_HIGH_MEM=40
# Включить набор сервисов ресурсов (toleration/nodeselector)
ENABLE_TOLERATION=1
# Toleration/NodeSelector для high/low ресурсов
TOLERATION_KEY=dedicated
TOLERATION_VALUE=processing
# Toleration для super-high-resources
TOLERATION_KEY_HIGH_MEM=dedicated
TOLERATION_VALUE_HIGH_MEM=high-mem
# Toleration для persistent
TOLERATION_KEY_PERSISTENT=
TOLERATION_VALUE_PERSISTENT=
# Значения по умолчанию для всех подов
DEFAULT_TOLERATION_KEY=
DEFAULT_TOLERATION_VALUE=
DEFAULT_NODE_SELECTOR_KEY=
DEFAULT_NODE_SELECTOR_VALUE=
DEFAULT_IMAGE_PULL_POLICY=always
DEFAULT_CPU_REQUESTS=100m
DEFAULT_MEMORY_REQUESTS=64Mi

# ----- Хранилища и внешние сервисы (флаги ENABLE_*) -----
# Путь к service account JSON для S3 (в проде задаётся Helm'ом,
# напр. /etc/sarex/yc-s3/yc-s3-service-account.json)
S3_SERVICE_ACCOUNT=
ENABLE_S3_STORAGE=1
ENABLE_S3V2_STORAGE=1
ENABLE_PDM_STORAGE=1
ENABLE_URL_STORAGE=1
ENABLE_LOCAL=0
ENABLE_BIM_API_DB=1
ENABLE_BIM_API_CH=1
ENABLE_BIM_API_V2_DB=1
ENABLE_PDM_API_DB=1
ENABLE_COMPARISONS_API_DB=1
ENABLE_ISSUE_API_DB=0
ENABLE_RESOURCES_API=0
ENABLE_MAIL_GUN=1
ENABLE_SMTP=0
ENABLE_WORKSPACE_API_DB=0
ENABLE_CROSS_SECTION_API_DB=0
# Debug-флаги (также пробрасываются в под задачи)
BIM_API_DEBUG=0
COMPARISONS_API_DEBUG=0

# ----- URL'ы внешних сервисов (internal/external) -----
INTERNAL_PDM_URL=http://api-service.documentations-stage
EXTERNAL_PDM_URL=https://stage-api.sarex.io/documentations
INTERNAL_FILESTREAM_URL=http://filestream-service.documentations-stage
EXTERNAL_FILESTREAM_URL=https://stage-api.sarex.io/files
INTERNAL_REMARK_URL=http://remarks-service.remarks-stage
EXTERNAL_REMARK_URL=https://stage-api.sarex.io/remarks
INTERNAL_WORKSPACE_URL=http://workspaces-service.workspaces-stage
EXTERNAL_WORKSPACE_URL=https://stage-api.sarex.io/workspaces
DJANGO_HOST=https://stage.sarex.io

# ----- Security -----
# Запускать контейнеры задач под фиксированным UID
ENABLE_RUNASUSER=false
USER_RUNASUSER=1000

# ============================================================================
# Переменные ниже читаются НЕ конфигом engine, а напрямую через os.Getenv
# (pkg/kube_services/services.go) и пробрасываются в env запускаемых Job-подов
# при включённом соответствующем ENABLE_*-флаге. Значения — пути к JSON-конфигам
# внутри контейнера (в проде монтируются Helm'ом как секреты-volume).
# ============================================================================
BIM_API_DB=/etc/sarex/bim-api-db-stage.json
BIM_API_CH=/etc/sarex/bim-api-ch.json
BIM_API_CH_DEBUG=0
BIM_API_V2_DB=/etc/sarex/bim-api-v2-db-stage.json
BIM_API_V2_DEBUG=0
BIM_API_V2_DB_2=/etc/sarex/second-bim-bd/db.json
BIM_API_V2_DB_3=/etc/sarex/third-bim-bd/db.json
BIM_API_V2_DB_4=/etc/sarex/fourth-bim-bd/db.json
COMPARISONS_API_DB=/etc/comparisons/comparisons-db-stage.json
ISSUE_API_DB=/etc/issues/issues-db.json
ISSUE_API_DEBUG=0
RESOURCES_API_INTERNAL_HOST=
SMTP=/etc/smtp-secret/env.json
PDM_API_DB=/etc/pdm/pdm-api-db-stage.json
PDM_API_DEBUG=0
WORKSPACE_API_DB=/etc/ws/ws-api-db.json
WORKSPACE_API_DEBUG=0
CROSS_SECTION_API_DB=/etc/cross_section/db.json
CROSS_SECTION_API_DEBUG=0
# Прокидываются в под всегда (сервис Default)
WORKFLOWS_SENTRY_DSN=
WORKFLOWS_SENTRY_DEBUG=0
ENVIRONMENT=stage
# Mailgun-конфиг (при ENABLE_MAIL_GUN)
MAILGUN=/etc/mailgun-secret/env.json

# ============================================================================
# Переменные ниже присутствуют в config.env / Helm, но кодом engine НЕ читаются
# (легаси / задел). Оставлены для справки, включать не обязательно:
#   API_ADDRESS — REST API отсутствует, реальный HTTP только pprof на :8081
#   CONTROL_PLANE_PERIOD
#   ENABLE_GOOGLE_STORAGE, GOOGLE_STORAGE_BUCKET, GOOGLE_STORAGE_PROJECT
#   ENABLE_SRX_TMP
#   MAX_TASKS_IN_PERIOD
#   ENABLE_PDM_DB
#   POD_NAME
#   RABBITMQ_CREATE_TOPIC — в конфиге нет такого поля (см. RABBITMQ_CREATE_ROUTING_KEY)
# ============================================================================
