kuke (root)¶
The kuke binary is the client CLI. It parses flags, opens a connection to kukeond, sends a request, and formats the response.
Persistent flags¶
These flags apply to every kuke subcommand. Defaults are shown in parentheses.
--run-path (/opt/kukeon)¶
Where Kukeon stores on-disk metadata for realms, spaces, stacks, cells, and containers. Must be writable by the process running kuke — typically root, or a member of the kukeon group when talking to the daemon over its group-readable socket.
--configuration ($HOME/.kuke/kuke.yaml)¶
Path to a ClientConfiguration YAML. If the file doesn't exist, Kukeon falls back to command-line flags, environment variables, and hardcoded defaults — a missing config file is not fatal.
--containerd-socket (/run/containerd/containerd.sock)¶
Path to the containerd socket. Only used when running in in-process mode; when talking to the daemon, containerd is accessed by the daemon, not the client.
--host (unix:///run/kukeon/kukeond.sock)¶
The daemon endpoint. Today only the unix:// scheme is supported. The ssh://user@host scheme is reserved for a future remote-management feature; don't use it yet.
--no-daemon (only on init / uninstall / purge / get <kind>)¶
Bypass kukeond and run the operation in-process. Requires root: the client now directly touches containerd, CNI, and cgroups.
--no-daemon is not a root-persistent flag — it is only accepted on kuke init, kuke uninstall, kuke purge, and every kuke get <kind> (see #222; the get kinds were retained per a user override on the original AC so the in-process escape hatch stays available for every resource lookup, not just get realm). For the remaining daemon-routed workload commands (apply, create, run, attach, delete, kill, start, stop, log, refresh), reach the in-process path via KUKEON_NO_DAEMON=true in the environment or via an explicit --run-path /path (which auto-promotes to in-process mode so a caller-supplied run-path is never silently sent to the wrong daemon).
kuke image * is daemon-independent by design and is always in-process regardless of any of these knobs.
Don't run two in-process commands at the same time — they'll race on the same on-disk state.
--verbose, -v (false)¶
Turn on structured slog output to stderr. Pair with --log-level debug for the chattiest view.
--log-level (info)¶
One of debug, info, warn, error. Controls log verbosity when --verbose is set.
Environment variables¶
Every flag also has a corresponding KUKE_* environment variable (check via --help on a subcommand, or see cmd/config/env.go). Flags beat env vars beat the config file beats built-in defaults.
Examples¶
# Talk to a non-default socket
kuke --host unix:///tmp/kukeond.sock get realms
# Bypass the daemon (in-process via env var)
sudo KUKEON_NO_DAEMON=true kuke apply -f cell.yaml
# Bypass the daemon (in-process via --run-path promotion)
sudo kuke apply -f cell.yaml --run-path /opt/kukeon
# Verbose debug of a single apply
sudo kuke apply -f cell.yaml --verbose --log-level debug
Subcommands¶
See Commands overview for the list.