Skip to content

On-box commands

Two separate command sets reach a Customer Edge, and neither contains the other.

  • On the box, the Site CLI has 6 top-level commands and 89 execcli subcommands.
  • Over the network, the debug API has its own catalog of 43.

Most of the on-box surface has no API equivalent: the whole Vega control plane, the Envoy wrappers, packet capture, the kubelet parameter set, the edit-* files and the auxiliary root-access pair are reachable only from the box.

Getting to them needs SSH or the serial console, and one thing that is documented nowhere:

How this was measured, and how the sets overlap

Section titled “How this was measured, and how the sets overlap”

The set below is not transcribed from a vendor document. It was read from a live node with scripts/sitecli_ssh_harvest.py and committed to sitecli/exec-catalog.json with its provenance. The current catalog records software build crt-20260201-0179, site state PROVISIONED, and capture time 2026-08-03T16:47:48Z.

Against the debug API’s 43 commands, that gives two figures worth keeping straight:

  • 49 execcli subcommands have no API equivalent.
  • 54 commands across the whole on-box surface have no API equivalent; the additional five live at the top level rather than under execcli.

Both are correct; a reader who recomputes one and finds the other has not made a mistake. Every figure here derives from sitecli/catalog.json and sitecli/exec-catalog.json.

What is documented, and what is only listed

Section titled “What is documented, and what is only listed”

A Customer Edge runs Linux and a number of third-party daemons. Documenting their commands would duplicate their own references and imply F5 owns them, so the rule is: document F5’s software, and for everything else document only what is specific to a CE.

Three tiers, because “ours” and “theirs” is not a clean split. The split is recorded in sitecli/command-classification.json.

TierTreatment
F5 softwareFull documentation — purpose, syntax, arguments, captured output, what to look for. Argo, Vega, vpm, vifdump, configure*, the edit-* set, kubelet parameters, root access.
CE-specific interpretationA third-party tool whose output means something particular on a CE. The CE-specific reading is documented and the tool’s own semantics are left upstream.
PassthroughPlain Linux or third-party with nothing CE-specific to say. Listed as available, with a pointer upstream. No prose.

That distinction decides whether a page exists at all, and it is what keeps this documentation from rotting into a worse copy of the man pages.

Available on the box and not documented here — these are the operating system and third-party daemons, not F5’s software, and their own references are better than anything this page could restate.

CommandsUpstream
ping, netstat, lsof, ip, ip-link-show, nmcli, tracepathiproute2, NetworkManager
top, check-mem, sysctl, load-sysctl-conf, journalctl, files, rpm-ostree, chronyc-sourcescoreutils, procps, systemd, rpm-ostree, chrony
edit-etc-hosts, edit-sysctl-confThe files are the operating system’s
systemctl-status-crio, systemctl-status-docker, systemctl-status-kubelet, systemctl-status-iscsid, systemctl-status-multipathdsystemd
systemctl-restart-crio, systemctl-restart-docker, systemctl-restart-kubelet, systemctl-restart-iscsid, systemctl-restart-multipathdsystemd — every one of these interrupts workloads on the node

Two of these are worth knowing about even though they get no page. files performs file operations and will only write beneath /tmp. And every systemctl-restart-* is disruptive by definition — restarting crio or kubelet interrupts the workloads on that node.