Appearance
Operate reachability
A Domain's ReachabilityPolicy decides when a Node moves Healthy → Stale → Unreachable. plexctl ships (../../reference/cli/plexctl.md) but there is no plexctl reachability subcommand yet, so the projection is read with curl.
Prerequisites
- An authenticated session — see Log in with plexctl.
${PLEXSPHERE_URL}, the${NODE_ID}, and a bearer${TOKEN}.kubectlto scaleplexdfor the transition test.
Steps
Read the reachability projection
shell
curl --silent --show-error --fail-with-body \
-H "Authorization: Bearer ${TOKEN}" \
"${PLEXSPHERE_URL}/v1/nodes/${NODE_ID}/reachability"A Healthy Node reports a last_heartbeat_at that advances by heartbeat_interval (30 s by default; stale_after = 90s, unreachable_after = 300s).
Drive a transition
shell
kubectl scale deploy/plexd --replicas=0 # stop heartbeats
# wait > stale_after → state: stale
# wait > unreachable_after → state: unreachable
kubectl scale deploy/plexd --replicas=1 # resume → state: healthyVerification
shell
curl -s -H "Authorization: Bearer ${TOKEN}" \
"${PLEXSPHERE_URL}/v1/nodes/${NODE_ID}/reachability" | jq '.state'See also
- Operate peers and PSKs — the peer-state companion.
../../contexts/mesh/reachability.md— the reachability model.