blumeops/containers
Erich Blume 0108b68769 C1: mirror tailscale container locally for ringtail proxyclass (#347)
## Summary

Adds the first cut of a local nix build for `docker.io/tailscale/tailscale` and rewires only the ringtail tailscale-operator overlay to use it. Indri's overlay continues pulling upstream — minikube on indri is being decommissioned in favor of ringtail's k3s, so investing in dual-cluster routing here would be wasted churn.

## Changes

- `containers/tailscale/default.nix` — `buildGoModule` over `cmd/tailscale`, `cmd/tailscaled`, `cmd/containerboot`; packaged via `dockerTools.buildLayeredImage` with `cacert`, `iptables` (legacy symlink to match upstream Synology compat), `iproute2`, `tzdata`, `busybox`.
- `argocd/manifests/tailscale-operator-ringtail/kustomization.yaml` — kustomize `images:` rewrite swapping `docker.io/tailscale/tailscale` → `registry.ops.eblu.me/blumeops/tailscale:v1.94.2-67af7a8-nix`.
- `docs/changelog.d/mirror-tailscale-container.infra.md` — fragment.

## Pin rationale

v1.94.2 matches `service-versions.yaml:96` and the current ProxyClass exactly — this PR is "make it local," not "upgrade tailscale." Version bumps come as follow-up C0/C1 changes once we decide to test newer (v1.96.x had a Fly-side MagicDNS regression; v1.98.0 is current upstream stable).

## Test plan

- [x] Image built successfully on ringtail nix-container-builder (run #528).
- [x] Image visible in registry: `registry.ops.eblu.me/blumeops/tailscale:v1.94.2-67af7a8-nix`.
- [ ] Deploy from branch: `argocd app set tailscale-operator-ringtail --revision mirror-tailscale-container && argocd app sync tailscale-operator-ringtail`.
- [ ] Verify proxy pods restart with new image and existing tailnet ingresses (e.g., authentik, immich, tempo) keep resolving.
- [ ] After merge: rebuild on main SHA, update kustomization, run `services-check`.

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

Reviewed-on: #347
2026-05-06 06:50:31 -07:00
..
alloy Alloy V1.16.0 (#345) 2026-05-01 08:05:37 -07:00
authentik Upgrade authentik 2026.2.0 → 2026.2.2 (patch release) 2026-04-08 10:53:03 -07:00
authentik-redis
forgejo-runner Upgrade forgejo-runner to v12.8, adopt server.connections, and clean up docs (#338) 2026-04-20 09:03:54 -07:00
frigate-notify fix(frigate-notify): set WorkingDir=/app and create writable /app 2026-04-21 09:43:00 -07:00
grafana Upgrade Grafana 12.3.3 → 12.4.2 (#322) 2026-04-02 11:33:19 -07:00
grafana-sidecar Upgrade grafana-sidecar 1.28.0 → 2.6.0 + container.py port (#332) 2026-04-13 07:57:13 -07:00
homepage
kingfisher Fix Kingfisher container: make /tmp world-writable 2026-03-30 06:53:34 -07:00
kiwix-serve Migrate kiwix-serve container from Dockerfile to native Dagger build 2026-04-17 13:56:32 -07:00
kube-state-metrics Localize kube-state-metrics container (Dockerfile + nix) (#327) 2026-04-07 16:09:25 -07:00
kubectl
loki
mealie
miniflux Refactor Dagger go_build() helper and standardize Alpine 3.23 2026-04-16 10:10:46 -07:00
navidrome Native Dagger container builds + Navidrome v0.61.1 (#330) 2026-04-11 17:11:56 -07:00
ntfy
paperless Deploy Paperless-ngx document management (#328) 2026-04-08 17:54:12 -07:00
prometheus
prowler Address 6 critical Prowler IaC findings (mute + grafana RBAC tighten) (#340) 2026-04-29 10:43:32 -07:00
runner-job-image Bump Dagger to 0.20.6 and migrate runner-job-image to Alpine container.py 2026-04-21 08:28:18 -07:00
tailscale C1: mirror tailscale container locally for ringtail proxyclass (#347) 2026-05-06 06:50:31 -07:00
tempo Build Tempo container from source (2.10.3) (#323) 2026-04-02 13:45:02 -07:00
teslamate Migrate teslamate to native Dagger container.py (#333) 2026-04-14 07:20:52 -07:00
transmission Migrate transmission containers from Dockerfile to Dagger builds 2026-04-15 11:26:00 -07:00
transmission-exporter Migrate transmission containers from Dockerfile to Dagger builds 2026-04-15 11:26:00 -07:00
unpoller
valkey Mirror valkey 8.1 locally for paperless and immich (#346) 2026-05-01 17:40:03 -07:00