Skip to content

Join the tailnet per provider - #78

Merged
czpython merged 1 commit into
mainfrom
claude/per-provider-tailnet-z6ti4d
Oct 18, 2026
Merged

czpython merged 1 commit into
mainfrom
claude/per-provider-tailnet-z6ti4d

Conversation

@czpython

Copy link
Copy Markdown
Owner

Requested by Paulo · project thread

Before: one TAILSCALE_ENABLED flag put every remote provider on the tailnet, or none of them. Cloudflare, Daytona, E2B and Vercel refused to work without it.

After: each provider declares tailnet. Cloudflare, Daytona, E2B and Vercel always join. Docker, docker-sbx and Boat never do. AWS, Hetzner, Exoscale and exe.dev join when <PROVIDER>_TAILNET=true (default false). Drukbox builds its Tailscale client when the four TAILSCALE_* credentials are set and rejects a partial set. A tailnet host without them fails provisioning with an error that names them. /doctor returns tailnet in place of tailscale_enabled.

Deploy: a deployment with TAILSCALE_ENABLED=true sets <PROVIDER>_TAILNET=true for each remote provider it uses (for example EXE_TAILNET=true) and drops TAILSCALE_ENABLED.

How: VMProvider.tailnet replaces supports_tailnet. Tailscale.from_settings() returns None without a tailnet, and HostService.provision fails a tailnet host when there is no client. The providers' setup-script guards are gone because the service decides. The unused DEFAULT_NETWORK_PROVIDER setting is removed. Touched files also get the review checklist (truthiness, bare returns, module-level test imports).


Generated by Claude Code

@czpython czpython self-assigned this Oct 18, 2026
Each provider declares whether its hosts join the tailnet. AWS, Hetzner,
Exoscale and exe.dev read <PROVIDER>_TAILNET (default false). The global
TAILSCALE_ENABLED flag is gone: drukbox builds its Tailscale client when
the TAILSCALE_ settings are set.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF9hpaiL2ri4m4XRyhrU9V
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants