This document describes the kubeowler command and its options. For installation, see installation.md.
kubeowler [OPTIONS] <COMMAND>
The only subcommand is check, which runs a full cluster inspection and writes a report.
Run cluster inspection and generate a report.
kubeowler check [OPTIONS]| Option | Short | Description | Default |
|---|---|---|---|
--cluster-name <NAME> |
Cluster name used in the report title | From kubeconfig or "default" | |
--namespace <NAMESPACE> |
-n |
Inspect only resources in this namespace | All namespaces |
--node-inspector-namespace <NAMESPACE> |
Namespace where the kubeowler-node-inspector DaemonSet runs | kubeowler |
|
--output <PATH> |
-o |
Output file path for the report | {cluster-name}-kubernetes-inspection-report-{timestamp}.{ext} |
--format <FORMAT> |
-f |
Output format: md, json, csv, or html |
md |
--config-file <PATH> |
-c |
Kubernetes config file path | KUBECONFIG or ~/.kube/config |
--level <LEVELS> |
-l |
Check levels to include in the report: all or comma-separated info,warning,critical |
warning,critical |
Full cluster check, default output file and Markdown format:
kubeowler checkLimit inspection to a single namespace:
kubeowler check --namespace kube-systemWrite report to a specific file in JSON format:
kubeowler check --output prod-report.json --format jsonUse a custom kubeconfig:
kubeowler check --config-file ~/.kube/config-prodInclude all severity levels (info, warning, critical) in the report:
kubeowler check --level allNode inspector runs in a different namespace:
kubeowler check --node-inspector-namespace my-namespaceCombined:
kubeowler check -n default -o report.md -f md -l warning,critical| Variable | Description |
|---|---|
KUBECONFIG |
Path to kubeconfig file. Overridden by --config-file if set. |
RUST_LOG |
Log level (e.g. info, debug, error). Useful for troubleshooting. |
- md (default): Markdown report with tables and issue links.
- json: Structured JSON for tooling or dashboards.
- csv: Flat CSV for spreadsheets.
- html: HTML report.
The default output filename is derived from the cluster name and a timestamp. When node inspection data is available, the timestamp is in cluster host local time (from the first node's timestamp_local); otherwise it is UTC. Use --output to override.