agent-runtime/k8s/cog-ingress.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

64 lines
1.6 KiB
YAML

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: cog-runtime
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
ingressClassName: traefik
tls:
- secretName: cog-tls
hosts:
- cog.loop42.de
rules:
- host: cog.loop42.de
http:
paths:
# MCP SSE — separate pod, survives runtime restarts
- path: /mcp
pathType: Prefix
backend:
service:
name: cog-mcp
port:
number: 80
# WebSocket + REST API — runtime pod
- path: /ws
pathType: Prefix
backend:
service:
name: cog-runtime
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: cog-runtime
port:
number: 80
- path: /health
pathType: Prefix
backend:
service:
name: cog-runtime
port:
number: 80
- path: /auth
pathType: Prefix
backend:
service:
name: cog-runtime
port:
number: 80
# Frontend — nginx, catch-all (must be last)
- path: /
pathType: Prefix
backend:
service:
name: cog-frontend
port:
number: 80