Skip to content

Tailscale

Back to the configuration index.

Every boot image carries the tailscale extension. Whether the installed system keeps it, and whether it authenticates, is decided by these two sections.

cluster.yaml

tailscale:
  login_server: https://headscale.example.edu

tailscale

Optional · mapping, may be empty

The presence of this section, even as tailscale: {}, keeps the tailscale extension in the installer image. Without it the installer extension set omits Tailscale unless you explicitly add siderolabs/tailscale through talos.extensions or a pool's extensions. The section also selects Tailscale hostnames for management; adding only the extension does not enable that address selection.

tailscale.login_server

Optional in the loader · URL · default unset

Set the Tailscale control-server URL explicitly when supplying an auth key, for example your Headscale server. When set, the generator emits --login-server=<value>. When omitted, no --login-server argument is emitted and the public Tailscale control plane is selected by default.

secrets.yaml

tailscale:
  auth_key: "CHANGE-ME"

tailscale.auth_key

Optional · string

A reusable, ideally ephemeral, pre-auth key every node registers with. Omit it (or leave it null) to leave the extension idle. Use a valid key when registering new or recreated nodes; an ephemeral node setting does not make an expired or single-use key reusable. A non-string, empty, or still-scaffolded CHANGE-ME value is refused at secrets load time. The value is redacted from the machine-config diff that plan prints.