Skip to content

Cockpit reaches ultra by default; drop runner-host defaults - #112

Merged
addisdev merged 2 commits into
mainfrom
cockpit-ultra-default
Oct 21, 2026
Merged

addisdev merged 2 commits into
mainfrom
cockpit-ultra-default

Conversation

@addisdev

@addisdev addisdev commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

runner-host was retired today: ultra is the coordinator (fleetd, replica id ultra) and the only runner host.

What changes

  • One default route. TransportConfig.defaultAliases = ["ultra", "ultra-ts"] (plus defaultRemotePort) in CockpitCore. The CLI's help, its tunnel and sentinel/pair/top fallbacks, the app's default settings, the Terminal shortcut and the widget sample all read it. Adding another host or moving the coordinator again is still a setting (Settings → Connection, or --via), not a release.
  • host-sentinel.sh names the host after SENTINEL_TARGET unless SENTINEL_NAME is set, so there's no hard-coded runner-host any more.
  • CLI vs a disconnected app. The app keeps writing glance.json while it retries a route, so an app still pointed at runner-host made cockpit status answer "Collector stalled · via app (runner-host)" from a 20-minute-old glance. A fresh snapshot is now used as-is only while the app is connected. Otherwise the CLI opens its own route, and falls back to the app's view (which may carry an out-of-band host-down) only if that fails too. SnapshotFile.isConnected is new and has a test.
  • Examples: docs/tools/shoot-motion.mjs and the settle-stale-jobs.mjs examples now ssh to ultra.
  • Docs: the cockpit pages follow the new default. federation.md gets a short "Current topology" note that points to "Adding a second runner host".

Left alone on purpose: CHANGELOG history, comments that record a measurement taken on runner-host, and generic your-runner-host placeholders. Nothing on the fleetd side changes (the only file under dashboard/ is a comment in a one-off script).

Tests

  • swift test (cockpit): 106 passed
  • npm test (dashboard): 1078 passed, 1 skipped
  • scripts/check-docs.sh, scripts/test-sentinel.sh: ok

🤖 Generated with Claude Code

addisdev and others added 2 commits October 21, 2026 12:10
runner-host is retired: ultra is now the coordinator and the only runner
host. The cockpit's default route lived in six places (CLI help, three CLI
fallbacks, the app's settings, the sentinel, the widget sample); it now
lives in one, TransportConfig.defaultAliases = ["ultra", "ultra-ts"], and
everything else reads it. Another or an extra host stays a setting
(Settings -> Connection, or --via), not a release.

host-sentinel.sh names the host after its target unless SENTINEL_NAME is
set, instead of a hard-coded "runner-host". shoot-motion.mjs and the
settle-stale-jobs examples ssh to ultra. Cockpit docs follow the new
default; federation.md gets a short current-topology note pointing at
"Adding a second runner host". Historical comments that measured
something on runner-host are left as they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The app keeps writing glance.json while it retries a route, so a running
app still pointed at the retired runner-host made `cockpit status` answer
"Collector stalled · via app (runner-host)" from a 20-minute-old glance,
although ultra answered at once over the CLI's own tunnel. A fresh
snapshot is now taken as-is only when the app is connected (live or
collector-stale); otherwise the CLI opens its own route and falls back to
the app's view (which may carry an out-of-band "host down") only when
that fails too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@addisdev
addisdev merged commit 572ce77 into main Oct 21, 2026
11 checks passed
@addisdev
addisdev deleted the cockpit-ultra-default branch October 21, 2026 16:21
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