agent-runtime/k8s/cog-mcp.yaml
Nico 5f447dfd53 v0.14.0: v2 Director-drives architecture + 3-pod K8s split
Architecture:
- director_v2: always-on brain, produces DirectorPlan with tool_sequence
- thinker_v2: pure executor, runs tools from DirectorPlan
- interpreter_v1: factual result summarizer, no hallucination
- v2_director_drives graph: Input -> Director -> Thinker -> Output

Infrastructure:
- Split into 3 pods: cog-frontend (nginx), cog-runtime (FastAPI), cog-mcp (SSE proxy)
- MCP survives runtime restarts (separate pod, proxies via HTTP)
- Async send pipeline: /api/send/check -> /api/send -> /api/result with progress
- Zero-downtime rolling updates (maxUnavailable: 0)
- Dynamic graph visualization (fetched from API, not hardcoded)

Tests: 22 new mocked unit tests (director_v2: 7, thinker_v2: 8, interpreter_v1: 7)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 04:17:44 +02:00

67 lines
1.5 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: cog-mcp
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: cog-mcp
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: cog-mcp
spec:
containers:
- name: mcp
image: docker.io/library/loop42-agent:v0.13.0
imagePullPolicy: Never
command: ["uvicorn", "agent.mcp_app:app", "--host", "0.0.0.0", "--port", "8001"]
ports:
- containerPort: 8001
env:
- name: SERVICE_TOKENS
value: 7Oorb9S3OpwFyWgm4zi_Tq7GeamefbjjTgooPVPWAwPDOf6B4TvgvQlLbhmT4DjsqBS_D1g
- name: RUNTIME_URL
value: "http://cog-runtime"
envFrom:
- secretRef:
name: cog-runtime-env
readinessProbe:
httpGet:
path: /health
port: 8001
initialDelaySeconds: 2
periodSeconds: 5
livenessProbe:
httpGet:
path: /health
port: 8001
initialDelaySeconds: 5
periodSeconds: 15
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
name: cog-mcp
namespace: default
spec:
selector:
app: cog-mcp
ports:
- port: 80
targetPort: 8001