Skip to content

docs(flatcar): cover remote reprovision (tailscale/headless/watchdog)#11

Merged
ananthb merged 2 commits into
mainfrom
docs/flatcar-remote-reprovision
Jul 15, 2026
Merged

docs(flatcar): cover remote reprovision (tailscale/headless/watchdog)#11
ananthb merged 2 commits into
mainfrom
docs/flatcar-remote-reprovision

Conversation

@ananthb

@ananthb ananthb commented Jul 15, 2026

Copy link
Copy Markdown
Owner

What

Adds a Reprovisioning a remote host section to docs/reprovision/flatcar.md.

The stock recipe uses --force and assumes console access. When the target is reached only over SSH (e.g. reprovisioning a remote server), the pivot tears down the old OS's networking the instant services stop — the launching session dies with it, leaving you blind while flatcar-install rewrites the disk.

Documents the flags that keep you reachable through the pivot:

  • --tailscale.authkey — joins the in-RAM installer rootfs to the tailnet via tsnet (userspace; survives losing the host's own networking). Reappears as <host>-xmorph with Tailscale SSH.
  • --headless — detaches from the launching terminal so an SSH disconnect doesn't kill the install.
  • --watchdog-timeout — reboots a hung installer instead of leaving a silent brick.

Why now

Surfaced while dogfooding the Flatcar recipe to reprovision a real remote host (NixOS -> Flatcar). This is the gap I hit first.

Status

⚠️ Hold merge until the run is verified. Opening now so the fix is staged; will confirm the flags behave as documented on the actual reprovision before merge.

The stock recipe uses --force and assumes console access. On a host reached
only over SSH, the pivot drops the old OS's networking and the launching
session with it, leaving you blind while flatcar-install rewrites the disk.
Document --tailscale.authkey (tsnet, survives losing host networking),
--headless (survive SSH disconnect), and --watchdog-timeout (reboot instead
of brick on a hung installer).
--headless was removed from xmorph; on systemd the pivot now self-relocates
into a transient scope so an SSH/run0 disconnect can't kill it, and
unit-driven runs use --systemd-mode. Drop --headless from the remote
example accordingly.
@ananthb
ananthb merged commit fe2a144 into main Jul 15, 2026
2 checks passed
@ananthb
ananthb deleted the docs/flatcar-remote-reprovision branch July 15, 2026 20:51
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.

1 participant