ansible(mac): drop the tailscale formula, keep only the tailscale-app cask (dual install wedges the tun) #253
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#253
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The Mac group installs two competing Tailscale stacks from brew, which fight over the tun and wedge the kernel data path:
tailscaleformula inhomebrew_installed_packages(ansible/inventory/group_vars/mac.yml:108) - ships thetailscaleddaemon + CLI, loaded as a launchd service.tailscale-appcask inhomebrew_cask_apps(ansible/inventory/group_vars/mac.yml:152) - the GUI app + itsmacsyssystem extension, which owns the supported macOS data path.On macOS only the cask app should run. Running the formula
tailscaledalongside it produces two daemons / two utuns / split routes: disco + userspace (tailscale ping) still works, but kernel TCP/ICMP to the tailnet black-holes (nc/ssh/pingtime out).How it surfaced
Hit live on
kais-macbook-produring thekais-macbook-pro -> kai-servero2r debug session (channel ZHQK). kai-server was healthy; the macbook could disco-ping it (7ms via LAN) but every kernel-path probe (nc :22,nc :6443,ssh) timed out. Neithertailscale down/up, a brew service restart, nor a full reboot fixed it - because the fault is two installs, not one stale daemon. Manual remediation requiredlaunchctl bootout system/homebrew.mxcl.tailscale(sudo) to stop the root-domain formula daemon and leave the cask app as the sole stack. A persistentclient 1.98.5 != tailscaled 1.98.2version skew was the tell (CLI from the formula, daemon socket from the cask's 1.98.2 extension).Asked fix (ansible)
Force the proper, single Tailscale install on Macs so this can't recur on convergence/reboot:
tailscale(the formula) fromhomebrew_installed_packagesfor the mac group - keep only thetailscale-appcask./Library/LaunchDaemons/homebrew.mxcl.tailscale.plist) andbrew uninstall tailscaleso already-provisioned Macs self-heal, not just fresh ones.tailscaleCLI on PATH is wanted, confirm the cask app provides it (it does, in the app bundle) before dropping the formula - socoily tailscalekeeps resolving.mac.ymlnear the cask entry: "do NOT also add thetailscaleformula - dual install wedges the tun (see this issue)."Acceptance
tailscaledprocess, no version skew warning fromtailscale ip.nc -z <peer> 22/ssh <peer>connect).