[Feature] List client versions in node list. #912

Open
opened 2025-12-29 02:25:49 +01:00 by adam · 3 comments
Owner

Originally created by @dragon2611 on GitHub (Jan 20, 2025).

Use case

After upgrading to 0.24 I see the following in the log unsupported client connected client_version=65 min_version=82, now this could have been there a while ago from 0.23 as well and the lack of support for an older tailscale client itself is not really a problem.

However, it seems neither the error message nor the node list show the tail scale client version, so I have no idea which client is causing this. Given that tailscale.com can show it I presume it's communicated to the control plane by the client.

Description

Please add the ability to find out the connected (or last seen) client version from headscale, ideally in the node list.

Contribution

  • I can write the design doc for this feature
  • I can contribute this feature

How can it be implemented?

No response

Originally created by @dragon2611 on GitHub (Jan 20, 2025). ### Use case After upgrading to 0.24 I see the following in the log `unsupported client connected client_version=65 min_version=82`, now this could have been there a while ago from 0.23 as well and the lack of support for an older tailscale client itself is not really a problem. However, it seems neither the error message nor the node list show the tail scale client version, so I have no idea which client is causing this. Given that tailscale.com can show it I presume it's communicated to the control plane by the client. ### Description Please add the ability to find out the connected (or last seen) client version from headscale, ideally in the node list. ### Contribution - [ ] I can write the design doc for this feature - [ ] I can contribute this feature ### How can it be implemented? _No response_
adam added the enhancementhelp wantedgood first issueno-stale-bot labels 2025-12-29 02:25:49 +01:00
Author
Owner

@kradalby commented on GitHub (Jan 21, 2025):

There has been discussions before, what would be nice would be something like (what I think/remember) the kubectl command does, we have the default as now, and you can pass it a --columns=col1,col2 which will extend it with more info.

One challenge is that we do not have access to the HostInfo (where the version lives) on the CLI side, there has been a few attempts, but no satisfactory method on doing the mixing of gRPC and JSON was found.

Maybe https://github.com/juanfont/headscale/issues/2305 can help with that?

@kradalby commented on GitHub (Jan 21, 2025): There has been discussions before, what would be nice would be something like (what I think/remember) the kubectl command does, we have the default as now, and you can pass it a `--columns=col1,col2` which will extend it with more info. One challenge is that we do not have access to the HostInfo (where the version lives) on the CLI side, there has been a few attempts, but no satisfactory method on doing the mixing of gRPC and JSON was found. Maybe https://github.com/juanfont/headscale/issues/2305 can help with that?
Author
Owner

@ArcticLampyrid commented on GitHub (Apr 1, 2025):

Workaround

Run the following command on any device that has joined your tsnet:

tailscale debug netmap | jq -r '(.Peers[] | [.ComputedName, .Hostinfo.IPNVersion]) | @tsv'

You'll see the name and version of each peer.

Some relative discussion

@ArcticLampyrid commented on GitHub (Apr 1, 2025): #### Workaround Run the following command on any device that has joined your tsnet: ```bash tailscale debug netmap | jq -r '(.Peers[] | [.ComputedName, .Hostinfo.IPNVersion]) | @tsv' ``` You'll see the name and version of each peer. #### Some relative discussion - #1205 - #1938 - #2208
Author
Owner

@hanjo commented on GitHub (May 28, 2025):

Thanks, to also include the version of the locally running client you may use

tailscale debug netmap | jq -r '(([.SelfNode] + .Peers)[] | [.ComputedName, .Hostinfo.IPNVersion, .Hostinfo.OS, .Hostinfo.OSVersion, .Hostinfo.Distro, .Hostinfo.DistroVersion]) | @tsv' | column -t

(I added some information about the OSes, which I find useful)

@hanjo commented on GitHub (May 28, 2025): Thanks, to also include the version of the locally running client you may use ```bash tailscale debug netmap | jq -r '(([.SelfNode] + .Peers)[] | [.ComputedName, .Hostinfo.IPNVersion, .Hostinfo.OS, .Hostinfo.OSVersion, .Hostinfo.Distro, .Hostinfo.DistroVersion]) | @tsv' | column -t ``` (I added some information about the OSes, which I find useful)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#912