feat(engine): сервис workflows-engine (k8s-исполнитель через kubeconfig)
This commit is contained in:
parent
a7c97027ae
commit
714dc55db1
@ -483,6 +483,62 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- processing-api
|
- 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).
|
# measurements — FastAPI, считает измерения по растрам из S3/MinIO (GDAL vsis3).
|
||||||
# БД/воркера нет. Обязателен S3_JSON_SETTINGS. Источник: apps/measurements/base.
|
# БД/воркера нет. Обязателен S3_JSON_SETTINGS. Источник: apps/measurements/base.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user