Files
community-plugins/k8s-status/README.md
T
Dave HammerandGitHub 5bae8428a3 Add davemhammer/k8s-status (#314)
* Add davemhammer/k8s-status

Kubernetes nodes/pods/deployments monitor with panel and /kube launcher.

* k8s-status v1.1.5: fix stuck Querying cluster

Parallel kubectl refresh, hang recovery, safer loading UI.
2026-08-09 10:13:48 -04:00

70 lines
2.7 KiB
Markdown

# K8s Status
Monitor Kubernetes nodes, pods, and deployments from Noctalia, with a `/kube` launcher for common actions.
## Plugin
| Field | Value |
| --- | --- |
| ID | `davemhammer/k8s-status` |
| Entries | Bar widget: `status`; panel: `manager`; service: `service`; launcher: `kube` |
| Launcher Prefix | `/kube` |
## Requirements
Install these on `PATH` (declared in `plugin.toml` `dependencies`):
- `kubectl` — cluster queries and actions (or set `kubectl_bin`)
- `less` — pager for describe/logs in the terminal
Optional (not declared; used only if present):
- `k9s` — open-k9s action
Cluster access uses your kubeconfig (passed to kubectl as `--kubeconfig`; the plugin does not parse the file itself).
## Usage
Add the **status** bar widget (`davemhammer/k8s-status:status`). Click for the panel; right-click requests a refresh.
Panel tabs: **Nodes**, **Pods**, **Deployments**, **Namespaces**. Select a row for describe / logs / shell / restart actions (where applicable).
Launcher examples:
- `/kube` — categories (pods, problems, nodes, …)
- `/kube pods nginx` — filter pods
- `/kube problems` — problem pods only
```sh
noctalia msg panel-toggle davemhammer/k8s-status:manager
```
## Settings
| Setting | Type | Default | Description |
| --- | --- | --- | --- |
| `kubeconfig` | `file` | `~/.kube/config` | Path passed to kubectl as `--kubeconfig`. |
| `context` | `string` | _(empty)_ | Context name; empty uses current-context. |
| `namespace` | `string` | _(empty)_ | Limit pods/deployments; empty = all namespaces. |
| `refresh_interval` | `int` | `15` | Poll interval in seconds. |
| `problems_only` | `bool` | `false` | Prefer problem pods in the panel list. |
| `notify_on_not_ready` | `bool` | `true` | Notify when a node becomes NotReady. |
| `kubectl_bin` | `string` | `kubectl` | kubectl command or absolute path. |
| `show_counts` | `bool` (widget) | `true` | Show ready nodes / problem pods on the bar. |
| `ok_color` | `select` (widget) | `tertiary` | Bar color when cluster looks healthy. |
| `warn_color` | `select` (widget) | `error` | Bar color when there are problems. |
## IPC
```sh
noctalia msg panel-toggle davemhammer/k8s-status:manager
noctalia msg plugin davemhammer/k8s-status:service all refresh
```
## Notes
- Shells out to `kubectl` and `less` (and optionally a terminal via `runInTerminal` for logs/shell/`k9s`).
- Refresh: nodes, deployments, and namespaces use compact **jsonpath** queries; pods use `kubectl get pods` table output for ready/restart columns.
- Does not modify cluster state unless you run restart/delete-style actions from the panel or launcher.
- Network: only via `kubectl` to the API server from your kubeconfig. No cluster credentials are written into the plugin tree.