tailscale / tailscale/caddy-tailscale
How to avoid the auto-generated numbered suffix in the node name (i.e. `mynode-1`)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 978
- Forks
- 96
- PR merge metrics
- No merged PRs in 30d
Description
Hi. I'm using this plugin in CI pipeline, where it creates some nodes in the tailnet for per-PR preview environments. Sometimes, while iterating on the project, the underlying VPS is destroyed and immediately recreated. This results in undesirable behavior where node names are automatically suffixed with an integer:
Tailnet (before):
- myvps (online)
- mycaddynode (online)
Tailnet (after):
- myvps (offline)
- myvps-1 (online)
- mycaddynode (offline)
- mycaddynode-1 (online)
This breaks the project's naming scheme. To fix it, I log on to the tailscale admin UI, remove mycaddynode from the tailnet, then rename mycaddynode-1 to mycaddynode. The fix is simple, but can get tedious at times as it first requires identifying that this event has occured in the first place.
Therefore, I'd like to automate the fix. After searching around for a bit, I found that tailscaled's --state=mem: flag essentially works around this auto-suffix naming issue.
After trying it, the --state=mem: does indeed fix the issue, but only for "regular" tailscale nodes and not for nodes that are generated by this caddy-tailscale plugin:
Tailnet (before):
- myvps (online)
- mycaddynode (online)
Tailnet (after):
- myvps (online)
- mycaddynode (offline)
- mycaddynode-1 (online)
Is there a way to get the same behavior for the "caddy nodes" too?
Workarounds
For now, I think my best bet would be to write a script that leverages that tailscale's Rest API to remove the stale offline nodes and rename the replacement node names (POST /device/{deviceId}/name) (i.e. mycaddynode-1 -> mycaddynode).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The payload names no source files or tests. Start by tracing how caddy-tailscale creates its nodes and how tailscaled's --state=mem: setting is configured, then compare that path with regular Tailscale nodes. Done means recreated caddy nodes keep the base name instead of receiving an integer suffix, matching the described before-and-after cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100