P5.1: Migrate minikube from podman to QEMU2 driver #38

Merged
eblume merged 16 commits from feature/p5.1-qemu2-migration into main 2026-01-21 16:03:38 -08:00

16 commits

Author SHA1 Message Date
960395eea4 Complete P5.1 docker migration, update P6 with NFS solution
- Rename P5.1 from qemu2_migration to docker_migration
- Mark P5.1 verification checklist complete
- Document direct NFS volume mount solution (tested and working)
- Update P6 to use NFS instead of SMB CSI
- Unblock P6: ready to implement

Sifaka NFS exports now allow 192.168.1.0/24 (docker via indri NAT)
and 100.64.0.0/10 (Tailscale). No LaunchAgents or minikube mount needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 15:59:54 -08:00
181f11265d Add restore from backup instructions to miniflux README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 15:29:38 -08:00
70357d247b Update P5.1 plan to complete status
- ArgoCD deployed and all apps synced
- Document remaining steps (secrets, post-merge reset)
- Simplified and reorganized documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:49:04 -08:00
f0a3cbf5ff Rename ProxyClass from crio-compat to default
The crio-compat name was misleading since we're now using docker driver.
Renamed to 'default' and updated all references.

Fully-qualified image names still used for consistency across runtimes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:25:02 -08:00
a7b0b84d08 Update P5.1 with network connectivity finding
After approving macOS network access GUI prompt, minikube can now
reach sifaka. NFS still denied because sifaka exports don't include
Docker network (192.168.49.0/24). Updated Option B as viable alternative
if sifaka NFS exports are updated.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:08:05 -08:00
75f945385c Update P5.1 plan with completion status and P6 storage options
- Document completed steps (docker driver working, kubectl access, ansible updated)
- Add detailed analysis of volume mount options for P6
- Recommend hostPath via Docker Desktop file sharing as simplest approach
- Document why direct NFS won't work (Docker network isolation)
- Include sample LaunchDaemon for persistent NFS mount

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:05:26 -08:00
9fac4439b1 Migrate minikube ansible role from qemu2 to docker driver
- Change driver from qemu2 to docker
- Remove socket_vmnet and qemu dependencies
- Remove NFS mount and minikube mount LaunchAgent/LaunchDaemon
- Remove old podman zot-mirror.conf
- Update containerd registry mirror config for docker driver
  - Uses host.minikube.internal:5050 to reach zot
  - Configures pull-through cache for docker.io, ghcr.io, quay.io
- Add dynamic tailscale serve configuration for k8s API
  (port is dynamic with docker driver, not fixed at 6443)
- Remove svc:k8s from tailscale_serve defaults (minikube role handles it)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 13:52:52 -08:00
201c90b27e Add mise task for minikube-indri kubectl config
Creates reusable script that fetches certificates from indri and sets up
kubeconfig at ~/.kube/minikube-indri/config.yml for remote kubectl access.

Part of P5.1 migration to docker driver.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 13:44:30 -08:00
5724b61fb4 save some work 2026-01-21 13:27:27 -08:00
2c28a3fc54 Update tailscale_serve for qemu2 API server address
The k8s API server is now at 192.168.105.2:6443 (inside qemu2 VM)
instead of localhost:44491 (old podman port mapping).

Note: TCP passthrough via tailscale svc:k8s is configured but
connection times out - may need admin console approval or debugging.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 11:45:31 -08:00
b096df4c71 Fix ansible idempotency and document macOS network permission
- Check containerd registry config before writing to avoid unnecessary changes
- Fix ansible_env deprecation warnings (use ansible_facts['env'])
- Document macOS network permission popup for minikube mount
- Document passwordless sudo configuration for indri
- Add checks to skip sudo tasks when state already matches

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 11:24:44 -08:00
40376b635f Add LaunchDaemon/LaunchAgent for persistent NFS and minikube mounts
- LaunchDaemon: mounts sifaka:/volume1/torrents to /Volumes/torrents-nfs at boot
- LaunchAgent: runs minikube mount to pass through to /mnt/torrents in VM
- Handlers to load both services when plist files change

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 08:22:53 -08:00
26ec02e1be P5.1: Add VM config to ansible role, mark phase complete
- Add hosts file entry for registry.tail8d86e.ts.net in VM
- Configure containerd registry mirror to use local zot
- Update P5.1 doc with implementation notes and manual steps
- Mark P5.1 as complete

Manual steps still required after cluster creation:
1. sudo brew services start socket_vmnet (once per reboot)
2. sudo mount -t nfs sifaka:/volume1/torrents /Volumes/torrents-nfs
3. minikube mount /Volumes/torrents-nfs:/mnt/torrents (GUI session)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 08:03:21 -08:00
4b2c1a346f Add socket_vmnet for proper qemu2 networking
- Install socket_vmnet via homebrew
- Start socket_vmnet service (requires sudo)
- Add --network=socket_vmnet to minikube start

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 21:41:47 -08:00
0474962e89 Increase minikube resources to 6 CPUs and 12GB RAM
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 21:20:04 -08:00
919f926241 P5.1: Update minikube role for QEMU2 driver
- Change minikube driver from podman to qemu2
- Change container runtime from cri-o to containerd
- Add qemu installation to minikube role
- Remove podman role from indri.yml playbook
- Update handlers for containerd instead of cri-o
- Temporarily disable registry mirror config (needs containerd format)
- Add k8s-storage synology user creation steps to P5.1 doc
- Add post-migration tasks for zot registry mirror reconfiguration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 21:06:53 -08:00