feat: worker_config

This commit is contained in:
jialin
2025-12-16 18:43:28 +08:00
parent 5225fd328d
commit 6968f9fa6b
12 changed files with 512 additions and 121 deletions
@@ -53,6 +53,7 @@ export interface ClusterListItem {
name: string;
display_name: string;
description: string;
worker_config: Record<string, any>;
provider: ProviderType;
credential_id: number;
zone: string;
@@ -74,5 +75,7 @@ export interface ClusterFormData {
credential_id: number;
zone: string;
region: string;
server_url?: string;
worker_config?: Record<string, any>;
worker_pools?: NodePoolFormData[];
}
@@ -0,0 +1,119 @@
{
"type": "object",
"properties": {
"worker_config": {
"type": "object",
"additionalProperties": false,
"properties": {
"debug": {
"type": "boolean",
"description": "Enable debug mode"
},
"cache_dir": {
"type": "string",
"description": "Cache directory path"
},
"log_dir": {
"type": "string",
"description": "Log directory path"
},
"bin_dir": {
"type": "string",
"description": "Binary directory path"
},
"system_default_container_registry": {
"type": "string",
"description": "Default container registry"
},
"image_name_override": {
"type": "string",
"description": "Override image name"
},
"image_repo": {
"type": "string",
"description": "Container image repository"
},
"gateway_mode": {
"type": "string",
"description": "Gateway mode",
"enum": ["worker", "gateway", "disabled"]
},
"gateway_kubeconfig": {
"type": "string",
"description": "Path to kubeconfig used by gateway"
},
"gateway_concurrency": {
"type": "integer",
"minimum": 0,
"description": "Gateway concurrency limit"
},
"service_discovery_name": {
"type": "string",
"description": "Service discovery name"
},
"namespace": {
"type": "string",
"description": "Kubernetes namespace"
},
"huggingface_token": {
"type": "string",
"description": "Hugging Face access token"
},
"disable_worker_metrics": {
"type": "boolean",
"description": "Disable worker metrics collection"
},
"worker_port": {
"type": "integer",
"minimum": 1,
"maximum": 65535,
"description": "Worker service port"
},
"worker_metrics_port": {
"type": "integer",
"minimum": 1,
"maximum": 65535,
"description": "Worker metrics port"
},
"service_port_range": {
"type": "string",
"pattern": "^\\d+-\\d+$",
"description": "Service port range, e.g. 30000-31000"
},
"ray_port_range": {
"type": "string",
"pattern": "^\\d+-\\d+$",
"description": "Ray port range, e.g. 20000-20100"
},
"resources": {
"type": "object",
"description": "Additional resource definitions",
"additionalProperties": {
"type": "object"
}
},
"pipx_path": {
"type": "string",
"description": "pipx installation path"
},
"tools_download_base_url": {
"type": "string",
"description": "Base URL for downloading tools"
},
"enable_hf_transfer": {
"type": "boolean",
"description": "Enable Hugging Face transfer acceleration"
},
"enable_hf_xet": {
"type": "boolean",
"description": "Enable Hugging Face Xet support"
},
"proxy_mode": {
"type": "string",
"enum": ["worker", "system", "disabled"],
"description": "Proxy mode"
}
}
}
}
}
@@ -0,0 +1,53 @@
export default `# This is a template for worker_config.
worker_config:
debug: true
# directories
cache_dir:
log_dir:
bin_dir:
# container & image
system_default_container_registry:
image_repo: gpustack/worker
image_name_override: ""
# gateway
gateway_mode:
gateway_concurrency: 0
gateway_kubeconfig: ""
# service & networking
service_discovery_name:
namespace: default
worker_port:
worker_metrics_port:
service_port_range:
ray_port_range:
# resources
resources:
gpu:
count:
type:
cpu:
limit:
memory:
limit:
# huggingface
huggingface_token: ""
enable_hf_transfer: true
enable_hf_xet: true
# metrics
disable_worker_metrics: false
# tools & runtime
pipx_path:
tools_download_base_url:
# proxy
proxy_mode: worker
`;