Skip to content

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}.
  • kubectl to scale plexd for 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: healthy

Verification

shell
curl -s -H "Authorization: Bearer ${TOKEN}" \
  "${PLEXSPHERE_URL}/v1/nodes/${NODE_ID}/reachability" | jq '.state'

See also