Files
Agentswarm/k8s/orchestrator-local.yaml
T
local 4d77b9263e
CI / tests (push) Failing after 12m5s
CI / guardrails (push) Failing after 12m6s
chore: 本地测试快照(#7 自底向上分解 + _parse_task 健壮化 + handoff 透传 + 本地部署清单)
仅供导出到 xiaohei/Agentswarm 的本地测试镜像快照,非主仓 PR。
2026-06-17 12:58:28 +08:00

105 lines
3.8 KiB
YAML

# Local (Docker Desktop k8s) orchestrator deploy — adapted from orchestrator-deployment.yaml.
# Differences vs prod: local-built arm64 image (imagePullPolicy: Never), host Docker redis via the
# kind gateway, OpenAI base = api.heicode.cc, NO azkv (model key from an optional local Secret).
apiVersion: v1
kind: Service
metadata:
name: orchestrator-service
namespace: swarm-system
labels: { app: orchestrator }
spec:
type: ClusterIP
ports:
- port: 8000
targetPort: 8000
name: http
selector: { app: orchestrator }
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: orchestrator
namespace: swarm-system
labels: { app: orchestrator }
spec:
replicas: 1
selector:
matchLabels: { app: orchestrator }
template:
metadata:
labels: { app: orchestrator }
spec:
serviceAccountName: swarm-orchestrator
containers:
- name: orchestrator
image: swarm-orchestrator:local
imagePullPolicy: Never # use the node-loaded local image; never pull
ports:
- containerPort: 8000
name: http
env:
# Reuse the existing in-cluster redis (Service redis-service in swarm-system).
- name: REDIS_HOST
value: "redis-service"
- name: REDIS_PORT
value: "6379"
- name: REDIS_DB
value: "0"
- name: LOG_LEVEL
value: "INFO"
# Swarm launches agent pods in-cluster using the local agent image.
- name: AGENT_LAUNCH_BACKEND
value: "kubernetes"
- name: AGENT_POD_IMAGE
value: "swarm-agent:local"
- name: AGENT_POD_NAMESPACE
value: "swarm-system"
- name: ORCHESTRATOR_PUBLIC_URL
value: "ws://orchestrator-service.swarm-system.svc.cluster.local:8000"
# User-supplied LLM gateway (OpenAI-compatible).
- name: AGENT_OPENAI_API_BASE
value: "https://api.heicode.cc/v1"
- name: OPENAI_API_BASE
value: "https://api.heicode.cc/v1"
# Default model id for launched agents (benchmark target; overridable per create request).
- name: OPENAI_MODEL
value: "qwen3.7-max"
# Agent pool window (local test): at least 16, up to 64 per run.
- name: AGENT_LAUNCH_MIN_POOL
value: "16"
- name: AGENT_LAUNCH_POOL_SIZE
value: "16"
- name: AGENT_LAUNCH_MAX_POOL
value: "64"
- name: MAX_AGENTS_PER_USER
value: "64"
# agent_swarm#7 bottom-up decomposition: how many subtasks one run may spawn.
- name: AGENT_PROPOSAL_BUDGET
value: "12"
# Local: no Azure workload identity. Model key comes from an OPTIONAL local Secret
# (swarm-model-key/OPENAI_API_KEY). resolve_model_key() falls back to this OPENAI_API_KEY.
# Create it to enable real LLM calls:
# kubectl -n swarm-system create secret generic swarm-model-key \
# --from-literal=OPENAI_API_KEY=sk-xxxx
- name: OPENAI_API_KEY
valueFrom:
secretKeyRef:
name: swarm-model-key
key: OPENAI_API_KEY
optional: true
resources:
requests: { memory: "256Mi", cpu: "200m" }
limits: { memory: "512Mi", cpu: "500m" }
livenessProbe:
httpGet: { path: /health, port: 8000 }
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet: { path: /health, port: 8000 }
initialDelaySeconds: 8
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3