P6: Migrate Kiwix and Transmission to Kubernetes #39

Merged
eblume merged 8 commits from feature/p6-kiwix-transmission-take2 into main 2026-01-21 18:07:41 -08:00

8 commits

Author SHA1 Message Date
9a03a08ecb Remove unnecessary NOTE comments from ansible files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 18:06:06 -08:00
5e62292752 Remove svc:kiwix from tailscale_serve defaults
Kiwix is now hosted in k8s with its own Tailscale ingress.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:45:23 -08:00
885b81820b Fix kiwix to read ZIMs from transmission's complete folder
Transmission puts completed downloads in /downloads/complete/, not the
root of the downloads directory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:40:27 -08:00
bff899499a Fix torrent sync readiness check and remove indri transmission/kiwix roles
- Fix sync script to accept HTTP 409 as "ready" (transmission RPC behavior)
- Remove transmission, transmission_metrics, kiwix roles from indri.yml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:33:56 -08:00
79cb5a579e Fix kiwix-serve command to use shell for glob expansion
The container image has its own entrypoint that conflicts with passing
args directly. Use a shell command to expand the glob properly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:10:46 -08:00
a243384d22 Use direct NFS mount for kiwix instead of PVC
A PV can only bind to one PVC, so kiwix cannot share a PV with torrent.
Instead, mount NFS directly in the pod spec for kiwix - this is simpler
and works without needing a shared PV/PVC strategy.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:08:39 -08:00
f761590458 Fix Tailscale Ingress format for torrent and kiwix
Use defaultBackend + tls.hosts instead of rules, matching other working
ingresses in the cluster.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:58:38 -08:00
a0a2cda9c4 P6: Add Kiwix and Transmission k8s manifests
- Transmission: General-purpose torrent daemon with web UI at torrent.tail8d86e.ts.net
- Kiwix: ZIM archive server at kiwix.tail8d86e.ts.net
- Shared NFS storage from sifaka:/volume1/torrents (no CSI driver needed)
- Declarative ZIM management via ConfigMap synced to transmission
- ZIM watcher CronJob to auto-restart kiwix when new ZIMs appear

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:47:43 -08:00