Implements the K8s-native Go API service per the plan architecture:
- HTTP server with graceful shutdown and env-var configuration
- PostgreSQL schema (bots, matches, match_participants, jobs, rating_history)
- Health/ready endpoints checking PostgreSQL and Valkey connectivity
- Bot registration with health check, HMAC secret gen, AES-256-GCM encryption
- Key rotation and bot status endpoints
- Job claim via Valkey BRPOP, result submission with Glicko-2 rating update
- Glicko-2 rating system: multi-player pairwise, Illinois volatility algorithm
- Background tickers: matchmaker (1m), health checker (15m), stale job reaper (5m)
- Worker API key authentication (Bearer/X-API-Key)
- Dockerfile, K8s Deployment (2 replicas), ClusterIP Service
- 30 unit tests covering Glicko-2, crypto, config, and handlers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Create deploy/k8s/ directory with complete K8s manifests for the
ai-code-battle namespace on apexalgo-iad cluster:
- Namespace and ArgoCD Application (auto-sync, prune, self-heal)
- Match worker Deployment (2 replicas, metrics on :9090)
- Index builder Deployment (Recreate strategy)
- 6 strategy bot Deployments (random, gatherer, rusher, guardian, swarm, hunter)
- ClusterIP Services for all bots (cluster DNS resolution)
- SealedSecret templates (API key, R2 creds, bot secrets, Cloudflare token)
- All containers from forgejo.ardenone.com/ai-code-battle/ registry
- Health/readiness probes and resource limits on all deployments
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>