worker_id: "homelab-worker"
base_path: "/tmp/fetchml-jobs"
entrypoint: "train.py"

redis_url: "redis://:${REDIS_PASSWORD}@redis:6379/0"

local_mode: true

max_workers: 1
poll_interval_seconds: 2

auto_fetch_data: false

data_manager_path: "./data_manager"
dataset_cache_ttl: "30m"

data_dir: "/data/active"

snapshot_store:
  enabled: true
  endpoint: "minio:9000"
  secure: false
  bucket: "fetchml-snapshots"
  prefix: "snapshots"
  timeout: "5m"
  max_retries: 3

podman_image: "python:3.9-slim"
container_workspace: "/workspace"
container_results: "/results"
gpu_devices: []

resources:
  max_workers: 1
  desired_rps_per_worker: 2
  podman_cpus: "2"
  podman_memory: "4Gi"

metrics:
  enabled: true
  listen_addr: ":9100"
metrics_flush_interval: "500ms"

task_lease_duration: "30m"
heartbeat_interval: "1m"
max_retries: 3
graceful_timeout: "5m"

# Plugin Configuration
plugins:
  # Jupyter Notebook/Lab Service
  jupyter:
    enabled: true
    image: "quay.io/jupyter/base-notebook:latest"
    default_port: 8888
    mode: "lab"
    # Security settings (strict for secure config)
    security:
      trusted_channels:
        - "conda-forge"
        - "defaults"
      blocked_packages:
        - "requests"
        - "urllib3"
        - "httpx"
        - "socket"
        - "subprocess"
        - "os.system"
      require_password: true
    # Resource limits
    max_gpu_per_instance: 1
    max_memory_per_instance: "8Gi"
  
  # vLLM Inference Service
  vllm:
    enabled: true
    image: "vllm/vllm-openai:latest"
    default_port: 8000
    # Model cache location
    model_cache: "/models"
    # Supported quantization methods: awq, gptq, fp8, squeezellm
    default_quantization: ""
    # Resource limits
    max_gpu_per_instance: 1
    max_model_len: 4096
    tensor_parallel_size: 1
