|
1 | | -name: "clp-package-base" |
| 1 | +name: "clp-package-all" |
2 | 2 |
|
3 | 3 | # Common service defaults. |
4 | 4 | x-service-defaults: &service_defaults |
@@ -40,14 +40,6 @@ x-volume-definitions: |
40 | 40 | source: "${CLP_LOGS_DIR_HOST:-./var/log}" |
41 | 41 | target: "/var/log" |
42 | 42 |
|
43 | | -volumes: |
44 | | - # Dummy volume to use when a bind mount is not desired. |
45 | | - empty: |
46 | | - driver_opts: |
47 | | - device: "tmpfs" |
48 | | - type: "tmpfs" |
49 | | - size: 0 |
50 | | - |
51 | 43 | services: |
52 | 44 | database: |
53 | 45 | <<: *service_defaults |
@@ -358,3 +350,139 @@ services: |
358 | 350 | "-m", "job_orchestration.garbage_collector.garbage_collector", |
359 | 351 | "--config", "/etc/clp-config.yml", |
360 | 352 | ] |
| 353 | + |
| 354 | + query-scheduler: |
| 355 | + <<: *service_defaults |
| 356 | + hostname: "query_scheduler" |
| 357 | + stop_grace_period: "10s" |
| 358 | + environment: |
| 359 | + BROKER_URL: "amqp://${CLP_QUEUE_USER:?Please set a value.}\ |
| 360 | + :${CLP_QUEUE_PASS:?Please set a value.}@queue:5672" |
| 361 | + CLP_DB_PASS: "${CLP_DB_PASS:?Please set a value.}" |
| 362 | + CLP_DB_USER: "${CLP_DB_USER:?Please set a value.}" |
| 363 | + CLP_LOGGING_LEVEL: "${CLP_QUERY_SCHEDULER_LOGGING_LEVEL:-INFO}" |
| 364 | + CLP_LOGS_DIR: "/var/log/query_scheduler" |
| 365 | + PYTHONPATH: "/opt/clp/lib/python3/site-packages" |
| 366 | + RESULT_BACKEND: "redis://default:${CLP_REDIS_PASS:?Please set a value.}@redis:6379\ |
| 367 | + /${CLP_REDIS_BACKEND_DB_QUERY:-0}" |
| 368 | + volumes: |
| 369 | + - *volume_clp_config_readonly |
| 370 | + - *volume_clp_logs |
| 371 | + depends_on: |
| 372 | + db-table-creator: |
| 373 | + condition: "service_completed_successfully" |
| 374 | + queue: |
| 375 | + condition: "service_healthy" |
| 376 | + redis: |
| 377 | + condition: "service_healthy" |
| 378 | + command: [ |
| 379 | + "python3", |
| 380 | + "-u", |
| 381 | + "-m", "job_orchestration.scheduler.query.query_scheduler", |
| 382 | + "--config", "/etc/clp-config.yml" |
| 383 | + ] |
| 384 | + healthcheck: |
| 385 | + <<: *healthcheck_defaults |
| 386 | + test: [ |
| 387 | + "CMD", |
| 388 | + "bash", |
| 389 | + "-c", |
| 390 | + "< /dev/tcp/query_scheduler/7000" |
| 391 | + ] |
| 392 | + |
| 393 | + query-worker: |
| 394 | + <<: *service_defaults |
| 395 | + hostname: "query_worker" |
| 396 | + environment: |
| 397 | + BROKER_URL: "amqp://${CLP_QUEUE_USER:?Please set a value.}\ |
| 398 | + :${CLP_QUEUE_PASS:?Please set a value.}@queue:5672" |
| 399 | + CLP_CONFIG_PATH: "/etc/clp-config.yml" |
| 400 | + CLP_HOME: "/opt/clp" |
| 401 | + CLP_LOGGING_LEVEL: "${CLP_QUERY_WORKER_LOGGING_LEVEL:-INFO}" |
| 402 | + CLP_LOGS_DIR: "/var/log/query_worker" |
| 403 | + CLP_WORKER_LOG_PATH: "/var/log/query_worker/worker.log" |
| 404 | + PYTHONPATH: "/opt/clp/lib/python3/site-packages" |
| 405 | + RESULT_BACKEND: "redis://default:${CLP_REDIS_PASS:?Please set a value.}@redis:6379\ |
| 406 | + /${CLP_REDIS_BACKEND_DB_QUERY:-0}" |
| 407 | + volumes: |
| 408 | + - *volume_clp_config_readonly |
| 409 | + - *volume_clp_logs |
| 410 | + - "${CLP_ARCHIVE_OUTPUT_DIR_HOST:-empty}:/var/data/archives" |
| 411 | + - "${CLP_AWS_CONFIG_DIR_HOST:-empty}:/opt/clp/.aws:ro" |
| 412 | + - "${CLP_STAGED_STREAM_OUTPUT_DIR_HOST:-empty}:/var/data/staged-streams" |
| 413 | + - "${CLP_STREAM_OUTPUT_DIR_HOST:-empty}:/var/data/streams" |
| 414 | + command: [ |
| 415 | + "python3", |
| 416 | + "-u", |
| 417 | + "/opt/clp/lib/python3/site-packages/bin/celery", |
| 418 | + "-A", "job_orchestration.executor.query", |
| 419 | + "worker", |
| 420 | + "--concurrency", "${CLP_QUERY_WORKER_CONCURRENCY:-1}", |
| 421 | + "--loglevel", "WARNING", |
| 422 | + "-f", "/var/log/query_worker/worker.log", |
| 423 | + "-Q", "query", |
| 424 | + "-n", "query-worker" |
| 425 | + ] |
| 426 | + |
| 427 | + reducer: |
| 428 | + <<: *service_defaults |
| 429 | + hostname: "reducer" |
| 430 | + stop_grace_period: "10s" |
| 431 | + environment: |
| 432 | + CLP_HOME: "/opt/clp" |
| 433 | + CLP_LOGGING_LEVEL: "${CLP_REDUCER_LOGGING_LEVEL:-INFO}" |
| 434 | + CLP_LOGS_DIR: "/var/log/reducer" |
| 435 | + PYTHONPATH: "/opt/clp/lib/python3/site-packages" |
| 436 | + volumes: |
| 437 | + - *volume_clp_config_readonly |
| 438 | + - *volume_clp_logs |
| 439 | + depends_on: |
| 440 | + query-scheduler: |
| 441 | + condition: "service_healthy" |
| 442 | + results-cache-indices-creator: |
| 443 | + condition: "service_completed_successfully" |
| 444 | + command: [ |
| 445 | + "python3", "-u", |
| 446 | + "-m", "job_orchestration.reducer.reducer", |
| 447 | + "--config", "/etc/clp-config.yml", |
| 448 | + "--concurrency", "${CLP_REDUCER_CONCURRENCY:-1}", |
| 449 | + "--upsert-interval", "${CLP_REDUCER_UPSERT_INTERVAL:-100}" |
| 450 | + ] |
| 451 | + |
| 452 | + mcp-server: |
| 453 | + <<: *service_defaults |
| 454 | + hostname: "mcp_server" |
| 455 | + profiles: ["mcp"] |
| 456 | + environment: |
| 457 | + CLP_LOGGING_LEVEL: "${CLP_MCP_LOGGING_LEVEL:-INFO}" |
| 458 | + CLP_LOGS_DIR: "/var/log/mcp_server" |
| 459 | + CLP_DB_USER: "${CLP_DB_USER}" |
| 460 | + CLP_DB_PASS: "${CLP_DB_PASS}" |
| 461 | + PYTHONPATH: "/opt/clp/lib/python3/site-packages" |
| 462 | + ports: |
| 463 | + - host_ip: "${CLP_MCP_HOST:-127.0.0.1}" |
| 464 | + published: "${CLP_MCP_PORT:-8000}" |
| 465 | + target: 8000 |
| 466 | + volumes: |
| 467 | + - *volume_clp_config_readonly |
| 468 | + - *volume_clp_logs |
| 469 | + depends_on: |
| 470 | + db-table-creator: |
| 471 | + condition: "service_completed_successfully" |
| 472 | + results-cache-indices-creator: |
| 473 | + condition: "service_completed_successfully" |
| 474 | + command: [ |
| 475 | + "python3", "-u", |
| 476 | + "-m", "clp_mcp_server.clp_mcp_server", |
| 477 | + "--host", "mcp_server", |
| 478 | + "--port", "8000", |
| 479 | + "--config-path", "/etc/clp-config.yml", |
| 480 | + ] |
| 481 | + healthcheck: |
| 482 | + <<: *healthcheck_defaults |
| 483 | + test: [ |
| 484 | + "CMD", |
| 485 | + "curl", |
| 486 | + "-f", |
| 487 | + "http://mcp_server:8000/health" |
| 488 | + ] |
0 commit comments