# ============================================================================ # 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) # ============================================================================