Phase 2 references for the host-agent Dune adapter, moved out of volatile /tmp
into docs/reference-repos/ (per Commander). Three upstream projects, .git +
node_modules + compiled binaries stripped (16MB source). Nested AI-instruction
files (.claude/, CLAUDE.md) removed so they don't pollute Corrosion sessions.
- icehunter/ dune-admin (Go+React) — 4 control planes; SETUP_DOCKER.md is the
closest analog to our agent's Dune docker control plane (compose
lifecycle, docker logs, RabbitMQ-via-exec, dune Postgres schema)
- adainrivers/ Rust/Tauri desktop — SSH+k8s BattleGroup control, maintenance
daemon, in-game admin console (Rust idiom reference)
- the4rchangel/ Node web UI replacing battlegroup.bat — matches the Commander's
Hyper-V self-host path + game-config schema
See docs/reference-repos/README.md for the full index + how we use each.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
ADR 0006 — Replace per-project k8s manifests with one unified manifest
Status: Implemented (Phase 3)
Date: 2025-05-27
Context
There are currently two separate Kubernetes manifests:
dune-admin/docker-compose.yml— local Docker developmentdune-market-bot/k8s/market-bot.yaml— k8s Deployment, Service, ConfigMap, Secret for the bot
After ADR 0003 (single binary), both functions ship in one image. Maintaining two manifests targeting different images creates confusion and drift risk.
Decision
Create deploy/k8s/dune-admin.yaml as the single authoritative k8s manifest. It includes:
- Namespace —
dune-admin - Deployment — single replica, single container (
dune-adminimage), all env vars wired from ConfigMap and Secret - Service — ClusterIP, port 8080
- ConfigMap — non-secret config: DB host/port/name, bot intervals, listen addr,
MARKET_BOT_ENABLED - Secret — DB password and broker credentials (
BROKER_USER,BROKER_PASS,BROKER_JWT_SECRET) - PersistentVolumeClaim —
market-bot-cache, used for SQLite (see ADR 0007) - Liveness probe:
GET /api/v1/status→ 200 - Readiness probe: same
Both old manifests (docker-compose.yml at repo root, dune-market-bot/k8s/market-bot.yaml) are removed. Migration notes are added to SETUP_DOCKER.md.
Consequences
- Operators who previously ran two pods now run one; the market bot is not a separately addressable network endpoint in-cluster
- The PVC must be provisioned by the cluster's default StorageClass (or operators set
storageClassNameexplicitly) kubectl apply --dry-run=clientis part of Phase 3 verification