Olares/docs/developer/install/cli/status.md
Peng Peng 61d793e4c6
cli, daemon: add olares-cli status backed by olaresd /system/status (#2917)
* cli, daemon: add `olares-cli status` backed by olaresd /system/status

Adds a new top-level `olares-cli status` command that calls the local
olaresd daemon's `/system/status` HTTP endpoint and prints either a
grouped, annotated human-readable report or raw JSON.

To avoid duplicating the response schema, the daemon's `state` struct
and related enums are extracted into a new shared package
`cli/pkg/daemon/state`. The daemon now type-aliases those types so all
existing daemon call sites keep compiling unchanged.

Made-with: Cursor

* cli: drop unused state.APIResponse envelope type

The HTTP client in cli/pkg/daemon/api/client.go intentionally uses an
inline anonymous envelope with json.RawMessage for the data field so
that --json mode can passthrough the bytes verbatim, so the public
APIResponse{Data State} type defined here had zero references. Remove
it; if a strongly-typed consumer ever shows up, re-add then.

Addresses Cursor Bugbot feedback on PR #2917.

Made-with: Cursor
2026-04-21 00:29:50 +08:00

12 KiB

status

Synopsis

The status command prints the current Olares system state by calling the local olaresd daemon's /system/status HTTP endpoint.

The endpoint is bound to 127.0.0.1:18088 and only accepts loopback traffic, so this command must run on the same host as the daemon (typically the master node).

olares-cli status [options]

By default, the output is grouped into human-readable sections:

  • Olares: installation lifecycle, version, names, key timestamps.
  • System: hardware and OS facts about the host.
  • Network: wired/Wi-Fi connectivity, internal and external IP addresses.
  • Install / Uninstall: progress of an in-flight install or uninstall.
  • Upgrade: progress of an in-flight upgrade (download and install phases).
  • Logs collection: state of the most recent log collection job.
  • Pressures: active kubelet node pressure conditions, if any.
  • Other: FRP, container mode, etc.

Use --json to receive the raw payload returned by olaresd, suitable for scripting or piping to tools like jq.

Options

Option Usage Required Default
--endpoint Base URL of the local olaresd daemon. Override only when olaresd is bound to a non-default address. No http://127.0.0.1:18088
--json Print the raw JSON payload returned by olaresd (the data field), suitable for piping to tools like jq. No false
--timeout Maximum time to wait for the olaresd response. No 5s
--help Show command help. No N/A

Examples

# Pretty-printed grouped report (default)
olares-cli status

# Raw JSON payload (forwarded verbatim from olaresd)
olares-cli status --json | jq

# Custom daemon endpoint and longer timeout
olares-cli status --endpoint http://127.0.0.1:18088 --timeout 10s

Field reference

The table below lists the fields returned by olaresd (the data object of the JSON response) and the labels they appear under in the grouped output.

Olares

Field JSON key Meaning
State terminusState High-level system state. See State values.
Olaresd state terminusdState Lifecycle of the olaresd daemon itself: initialize while bootstrapping, running once ready.
Name terminusName Olares ID of the admin user, e.g. alice@olares.cn.
Version terminusVersion Installed Olares version (semver).
Olaresd version olaresdVersion Running olaresd binary version. Useful for spotting drift after partial upgrades.
Installed at installedTime Unix epoch (seconds) when Olares finished installing on this node.
Initialized at initializedTime Unix epoch (seconds) when the admin user finished initial activation.

System

Field JSON key Meaning
Device device_name User-friendly device or chassis name.
Hostname host_name Kernel hostname.
OS os_type / os_arch / os_info OS family, CPU architecture, distro string.
OS version os_version OS version string, e.g. 22.04.
CPU cpu_info CPU model name.
Memory memory Total physical memory, formatted as <N> G.
Disk disk Total filesystem size of the data partition, formatted as <N> G.
GPU gpu_info GPU model name when one is detected.

Network

Field JSON key Meaning
Wired wiredConnected yes when an Ethernet connection is active.
Wi-Fi wifiConnected yes when the active default route is over Wi-Fi.
Wi-Fi SSID wifiSSID SSID of the connected Wi-Fi network, when applicable.
Host IP hostIp Internal LAN IPv4 address used by Olares to reach other nodes.
External IP externalIp Public IPv4 address as observed by an external probe (refreshed at most once per minute).

Install / Uninstall

Field JSON key Meaning
Installing installingState Lifecycle of the in-flight install: in-progress, completed, failed.
installingProgress Free-form description of the current install step (shown as the inline note).
Uninstalling uninstallingState Lifecycle of the in-flight uninstall.
uninstallingProgress Free-form description of the current uninstall step.

Upgrade

Field JSON key Meaning
Target upgradingTarget Target version of the in-flight upgrade.
State upgradingState Lifecycle of the install phase of the upgrade.
upgradingProgress Free-form progress message (inline note).
Step upgradingStep Name of the current upgrade step.
Last error upgradingError Most recent error from the install phase.
Download state upgradingDownloadState Lifecycle of the download phase.
upgradingDownloadProgress Free-form progress message for the download (inline note).
Download step upgradingDownloadStep Name of the current download step.
Download error upgradingDownloadError Most recent error from the download phase.
Retry count upgradingRetryNum Number of times the upgrader has retried after a transient failure (only shown when > 0).
Next retry at upgradingNextRetryAt Wall-clock time at which the next retry will fire (only shown when set).

Logs collection

Field JSON key Meaning
State collectingLogsState Lifecycle of the most recent log collection job triggered through olaresd.
collectingLogsError Error from the most recent log collection job (inline note).

Pressures

The pressures array lists kubelet node-condition pressures that are currently true on this node. The grouped output shows (none) when the node is healthy.

Field JSON key Meaning
Type type Kubernetes node condition type, e.g. MemoryPressure, DiskPressure.
Message message Human-readable explanation provided by kubelet.

Other

Field JSON key Meaning
FRP enabled frpEnable Whether the FRP-based reverse tunnel is turned on (sourced from FRP_ENABLE).
FRP server defaultFrpServer FRP server address (sourced from FRP_SERVER).
Container mode containerMode Set when olaresd is running inside a container (sourced from CONTAINER_MODE).

State values

The terminusState field can take one of the following values. The CLI sources its descriptions from the same enumeration, so the table below stays in sync with the CLI output.

Value Meaning
checking olaresd has not finished the first status probe yet.
network-not-ready No usable internal IPv4 address detected.
not-installed Olares is not installed on this node.
installing Olares is currently being installed.
install-failed The most recent install attempt failed.
uninitialized Olares is installed but the admin user has not been activated yet.
initializing The admin user activation is in progress.
initialize-failed The admin user activation failed.
terminus-running Olares is running normally.
restarting The node was just restarted; status will stabilize shortly.
invalid-ip-address The node IP changed since install; run change-ip to recover.
ip-changing A change-ip operation is in progress.
ip-change-failed The most recent change-ip attempt failed.
system-error One or more critical pods are not running.
self-repairing olaresd is attempting automatic recovery.
adding-node A worker node is being joined.
removing-node A worker node is being removed.
uninstalling Olares is being uninstalled.
upgrading An upgrade is being applied.
disk-modifing The storage layout is being modified.
shutdown The system is shutting down.