P6: Kiwix and Transmission migration #36

Closed
eblume wants to merge 3 commits from feature/p6-kiwix-transmission into main
Owner

Summary

  • Add SMB CSI driver ArgoCD application for mounting sifaka /volume1/torrents share
  • Add Transmission deployment as standalone torrent daemon (torrent.tail8d86e.ts.net)
  • Add Kiwix deployment with torrent-sync sidecar for declarative ZIM management
  • Add ZIM watcher CronJob to auto-restart kiwix when new ZIMs complete
  • Both services share SMB PersistentVolume for downloads

Architecture

  • Transmission is a general-purpose torrent daemon in torrent namespace
  • Kiwix declares desired ZIM torrents via ConfigMap, synced to Transmission automatically
  • Kiwix picks up any .zim files from shared storage (declarative or manually added)
  • SMB CSI driver mounts //sifaka/torrents into k8s pods

Deployment and Testing

  • Create SMB credentials secret from 1Password
  • Deploy SMB CSI driver (argocd app sync smb-csi)
  • Deploy Transmission (argocd app sync torrent)
  • Deploy Kiwix (argocd app sync kiwix)
  • Verify torrent.tail8d86e.ts.net web UI works
  • Verify kiwix.tail8d86e.ts.net serves ZIM files
  • Stop indri services and complete Tailscale cutover
  • Update ansible to remove roles

🤖 Generated with Claude Code

## Summary - Add SMB CSI driver ArgoCD application for mounting sifaka `/volume1/torrents` share - Add Transmission deployment as standalone torrent daemon (`torrent.tail8d86e.ts.net`) - Add Kiwix deployment with torrent-sync sidecar for declarative ZIM management - Add ZIM watcher CronJob to auto-restart kiwix when new ZIMs complete - Both services share SMB PersistentVolume for downloads ## Architecture - **Transmission** is a general-purpose torrent daemon in `torrent` namespace - **Kiwix** declares desired ZIM torrents via ConfigMap, synced to Transmission automatically - Kiwix picks up any `.zim` files from shared storage (declarative or manually added) - SMB CSI driver mounts `//sifaka/torrents` into k8s pods ## Deployment and Testing - [ ] Create SMB credentials secret from 1Password - [ ] Deploy SMB CSI driver (`argocd app sync smb-csi`) - [ ] Deploy Transmission (`argocd app sync torrent`) - [ ] Deploy Kiwix (`argocd app sync kiwix`) - [ ] Verify `torrent.tail8d86e.ts.net` web UI works - [ ] Verify `kiwix.tail8d86e.ts.net` serves ZIM files - [ ] Stop indri services and complete Tailscale cutover - [ ] Update ansible to remove roles 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Add SMB CSI driver ArgoCD application for mounting sifaka share
- Add transmission deployment in torrent namespace with Tailscale ingress
- Add kiwix deployment with torrent-sync sidecar for declarative ZIM management
- Add zim-watcher CronJob to auto-restart kiwix when new ZIMs complete
- Both services share SMB PV mounted from sifaka:/volume1/torrents

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The csi-driver-smb repo stores charts at charts/v1.17.0/csi-driver-smb,
not charts/csi-driver-smb.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
SMB CSI driver doesn't work with minikube podman driver due to
kernel-level mount restrictions. Use hostPath instead since the
SMB share is already mounted on indri at /Volumes/torrents.

- Remove SMB PV and secret template
- Add hostPath PVs for torrent and kiwix namespaces
- Both PVs point to same /Volumes/torrents directory

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Author
Owner

Closed, see phase 5.1 documentation, I am aborting this PR

Closed, see phase 5.1 documentation, I am aborting this PR
eblume closed this pull request 2026-01-20 20:49:32 -08:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!36
No description provided.