feat(engine): сервис workflows-engine (k8s-исполнитель через kubeconfig)
This commit is contained in:
parent
a7c97027ae
commit
714dc55db1
@ -483,6 +483,62 @@ services:
|
||||
depends_on:
|
||||
- processing-api
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# workflows-engine — оркестратор processing: читает workflow_db, создаёт Job'ы
|
||||
# в k3s (K8s-исполнитель; AMQP выкл). В кластер ходит out-of-cluster через
|
||||
# kubeconfig (KUBE_CONFIG+KUBE_ADDR). Job-поды резолвят postgres/minio через
|
||||
# DNS-мост namespace processing. Источник: apps/processing/base/engine*.yaml.
|
||||
# ---------------------------------------------------------------------------
|
||||
engine:
|
||||
image: ${SAREX_WORKFLOWS_ENGINE_IMAGE:-cr.yandex/crp3ccidau046kdj8g9q/workflows-endigne_prod:075fc0}
|
||||
container_name: engine
|
||||
restart: unless-stopped
|
||||
entrypoint: ["/engine"]
|
||||
environment:
|
||||
APP_NAME: workflows-engine
|
||||
LOG_LEVEL: info
|
||||
ENVIRONMENT: contour
|
||||
# исполнители: только Kubernetes
|
||||
ENABLE_KUBERNETES_EXECUTOR: "1"
|
||||
ENABLE_AMQP_EXECUTOR: "0"
|
||||
COUNT_RUNNING_WORKERS: "1"
|
||||
COUNT_CANCELING_WORKERS: "1"
|
||||
COUNT_HANDLE_JOB_WORKERS: "1"
|
||||
WORKFLOW_PRIORITY: low
|
||||
MAX_WORKFLOWS_LIMIT: "5"
|
||||
# доступ в k3s (out-of-cluster): kubeconfig + перекрытый адрес apiserver
|
||||
KUBE_CONFIG: /kube/config
|
||||
KUBE_CONTEXT: default
|
||||
KUBE_ADDR: https://k3s-server:6443
|
||||
JOBS_NAMESPACE: processing
|
||||
# свой доступ к workflow_db по compose-DNS
|
||||
POSTGRES_ADDRESS: postgres
|
||||
POSTGRES_PORT: "5432"
|
||||
POSTGRES_DB: ${SAREX_PROCESSING_DB:-workflow_db}
|
||||
POSTGRES_USER: ${SAREX_PROCESSING_DB_USER:-processing}
|
||||
POSTGRES_PASSWORD: ${SAREX_PROCESSING_DB_PASSWORD:-processing-secret}
|
||||
POSTGRES_POOL_SIZE: "20"
|
||||
POSTGRES_SSL_USE: "0"
|
||||
# хранилища: только S3, напрямую в minio (yc-s3 SA JSON смонтирован)
|
||||
ENABLE_S3_STORAGE: "1"
|
||||
S3_SERVICE_ACCOUNT: /etc/sarex/yc-s3/yc-s3-service-account.json
|
||||
# дефолты планирования Job-подов
|
||||
DEFAULT_IMAGE_PULL_POLICY: IfNotPresent
|
||||
DEFAULT_CPU_REQUESTS: 100m
|
||||
DEFAULT_MEMORY_REQUESTS: 64Mi
|
||||
volumes:
|
||||
- ./k3s/kubeconfig.yaml:/kube/config:ro,z
|
||||
- ./engine/yc-s3-service-account.json:/etc/sarex/yc-s3/yc-s3-service-account.json:ro,z
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
postgres-init:
|
||||
condition: service_completed_successfully
|
||||
k3s-server:
|
||||
condition: service_healthy
|
||||
processing-k8s-init:
|
||||
condition: service_completed_successfully
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# measurements — FastAPI, считает измерения по растрам из S3/MinIO (GDAL vsis3).
|
||||
# БД/воркера нет. Обязателен S3_JSON_SETTINGS. Источник: apps/measurements/base.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user