blumeops/argocd/manifests
Erich Blume d03ed337a9 Localize the Tailscale operator stack (k8s-operator + indri ProxyClass) (#374)
Weekly non-local-container task: localize the Tailscale operator stack on **both clusters**.

## What

- **`containers/tailscale-operator/`** (new) — builds `cmd/k8s-operator` v1.94.2 from the forge mirror, mirroring upstream's mkctr recipe (`/usr/local/bin/operator`, `ts_kube,ts_package_container` go tags, version stamps). `container.py` (dagger) for indri/arm64; `default.nix` for ringtail/amd64.
- **`containers/tailscale/container.py`** (new) — dagger/arm64 build of the proxy image (containerboot), mirroring the upstream Dockerfile (iptables-legacy symlinks, `/tailscale/run.sh` compat). Ringtail already consumes the existing nix build; this completes parity for indri.
- **Version pinned at v1.94.2** (same as currently deployed) — this PR is a pure supply-chain swap, no version change. v1.96.x is avoided deliberately (MagicDNS-in-containers regression).
- Docs-first: tailscale-operator card gains **Local Images** and **Rollout Safety** sections.

## Rollout plan (after image builds)

1. Manifest commit: per-overlay `images:` override for the operator + ProxyClass strategic-merge patch on indri (kustomize `images:` can't touch CR fields).
2. `argocd app set tailscale-operator --revision <branch> && argocd app sync` — indri first, verify, then ringtail.
3. **Shadow-device safety**: device identity lives in the tailscale state Secrets; an image swap re-uses existing node keys, so no `-1` clones. State Secrets are not touched. Post-sync verification: pod health, device names unchanged, `mise run services-check`.

## Follow-ups (not this PR)

- `dnsconfig` nameserver image (`tailscale/k8s-nameserver:stable`) still upstream.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: #374
2026-06-09 17:45:23 -07:00
..
1password-connect Migrate 1Password Connect from Helm to kustomize (1.8.1 → 1.8.2) (#326) 2026-04-06 07:31:40 -07:00
alloy-k8s C0: wave-1 decommission follow-ups (argocd admin RBAC, teslamate probe) 2026-06-03 13:02:05 -07:00
alloy-ringtail C0: move immich blackbox probe to ringtail alloy 2026-05-17 08:46:22 -07:00
alloy-tracing-ringtail C0: alloy — bump kustomization tags to main-branch SHA 2026-05-01 08:31:27 -07:00
argocd C0: wave-1 decommission follow-ups (argocd admin RBAC, teslamate probe) 2026-06-03 13:02:05 -07:00
authentik heph Authentik: grant offline_access scope (fixes spoke sync refresh-token 400) 2026-06-06 18:07:13 -07:00
cloudnative-pg
databases Decommission wave-1 minikube services (paperless, teslamate, mealie) (#365) 2026-06-03 12:36:06 -07:00
databases-ringtail Wire ringtail blumeops-pg into backups + Grafana (#364) 2026-06-03 12:25:30 -07:00
external-secrets C0: rebuild external-secrets off main, repoint both clusters to stable tags 2026-06-04 16:19:20 -07:00
external-secrets-ringtail C0: rebuild external-secrets off main, repoint both clusters to stable tags 2026-06-04 16:19:20 -07:00
forgejo-runner chore: repoint runner-job-image tag at CI-built v0.20.6-50f8c2a 2026-04-21 08:38:33 -07:00
frigate C0: bump frigate-notify to v0.5.4-e928054-nix (workdir fix) 2026-04-21 09:44:24 -07:00
grafana Wire ringtail blumeops-pg into backups + Grafana (#364) 2026-06-03 12:25:30 -07:00
grafana-config C1: deploy adelaide-baby-shower-app to ringtail k3s (#349) 2026-05-11 13:47:18 -07:00
homepage C0: drop duplicate Homepage static entries for ringtail-migrated services 2026-06-03 15:31:59 -07:00
immich-ringtail C0: rebuild valkey from squashed main commit 2026-05-28 14:53:21 -07:00
kingfisher
kiwix Update kiwix-serve to Dagger-built container (Alpine 3.23) 2026-04-17 14:27:42 -07:00
kube-state-metrics Pin kube-state-metrics to main-SHA container tags 2026-04-07 16:10:14 -07:00
kube-state-metrics-ringtail Pin kube-state-metrics to main-SHA container tags 2026-04-07 16:10:14 -07:00
loki
mealie-ringtail C0: mealie-ringtail image rebuilt from main (e0057b4-nix) 2026-06-03 12:26:55 -07:00
miniflux Update navidrome, miniflux, forgejo-runner image tags to Alpine 3.23 builds [main] 2026-04-16 15:37:30 -07:00
navidrome Update navidrome, miniflux, forgejo-runner image tags to Alpine 3.23 builds [main] 2026-04-16 15:37:30 -07:00
ntfy
nvidia-device-plugin Recurring review sweep: 4 doc cards + nvidia-device-plugin v0.19.2 (#366) 2026-06-04 13:37:02 -07:00
ollama Upgrade ollama from 0.17.5 to 0.20.4 2026-04-09 06:42:05 -07:00
paperless-ringtail C0: ringtail wave-1 images rebuilt from main (fcac8e5-nix tags) 2026-06-03 10:36:15 -07:00
prometheus
prowler Retire Prowler image + IaC scans (keep K8s CIS only) (#372) 2026-06-08 09:30:09 -07:00
shower C0: deploy shower v1.1.3 (kustomize newTag bump) 2026-05-15 20:09:54 -07:00
tailscale-operator Localize the Tailscale operator stack (k8s-operator + indri ProxyClass) (#374) 2026-06-09 17:45:23 -07:00
tailscale-operator-base C0: point tailscale-operator base mirror fetch at tailnet forge 2026-06-04 12:40:21 -07:00
tailscale-operator-ringtail Localize the Tailscale operator stack (k8s-operator + indri ProxyClass) (#374) 2026-06-09 17:45:23 -07:00
tempo Point Tempo at main-built container v2.10.3-75f9ba4 2026-04-02 13:45:57 -07:00
teslamate-ringtail C0: ringtail wave-1 images rebuilt from main (fcac8e5-nix tags) 2026-06-03 10:36:15 -07:00
torrent Deploy transmission containers from Dagger builds 2026-04-15 11:34:28 -07:00
unpoller C0: rebuild unpoller container from squashed main commit 2026-05-28 10:10:21 -07:00