A simple read-only Kubernetes dashboard.
- Read-only: Assuming a gitops approach to cluster and workload management.
- Self-contained: Single container/executable with no external dependencies.
- In-memory database: Requests to polar-bear don't hit the Kubernetes api-server.
- No auth: Easy access locally, in homelab setups, behind a VPN or inside a Tailscale network.
- This is not a product. This is just geberl's hobby project. One person, no contributors, no company-support.
- I know it has a cute animal logo. This still doesn't make it production-ready.
- Don't expect a 1.0 version any time soon (or ever). I have maybe 4 hours/month to work on this.
- For production use, consider Headlamp, the official kubernetes/dashboard, or a commercial SaaS solution.
- I will most definitely not help you debug your cluster. For anything else, feel free to open an issue. That I might then ignore.
Node List:
Node Details:
Pod List:
Pod Details:
| Resource | Live View | Detail Page | List Page | Counts |
|---|---|---|---|---|
| Pod | ✔️ | ✔️ | ✔️ | ✔️ |
| Deployment | ➖ | ✔️ | ✔️ | ✔️ |
| ReplicaSet | ➖ | ➖ | ✔️ | ✔️ |
| StatefulSet | ➖ | ➖ | ✔️ | ✔️ |
| Service | ➖ | ➖ | ➖ | ✔️ |
| Ingress | ➖ | ➖ | ➖ | ✔️ |
| ConfigMap | ➖ | ➖ | ➖ | ➖ |
| Resource | Sidebar | Detail Page | List Page |
|---|---|---|---|
| Node | ✔️ | ✔️ | ✔️ |
| CR | ➖ | ➖ | ➖ |
go run ./cmd/server/... --help
Usage of polar-bear:
-cluster-name string
name of the cluster (default "My Cluster")
-devmode
Use non-optimized Tailwind CSS file with all classes
-hostname string
name of the host that serves the application (default "My Host")
-http-listen-address string
http listen address (default "localhost:8888")
-logformat string
Format of logging, one of human/json (default "human")
-loglevel string
Verbosity of logging, one of debug/info/warn/error (default "info")
-metrics-listen-address string
metrics listen address (default "localhost:8889")Run polar-bear locally, connecting to an existing remote cluster:
kubectx my-cluster
kubens my-namespace
export KUBECONFIG="$HOME/.kube/config-my-cluster.yaml"
export POLAR_BEAR_DEVMODE=true
export POLAR_BEAR_HOSTNAME="MacBook Pro"
export POLAR_BEAR_LOGLEVEL="debug"
export POLAR_BEAR_LOGFORMAT="color"
go run ./cmd/server/...Then open http://localhost:8888 in a browser.
Examples see manifests directory.
ChatGPT and Claude were used as research tools during development, similar to how one would use a search engine. Some generated code was copy-pasted, but all of it was manually reviewed. No autonomous agents were let loose on this repo (yet).
The logo was traced from a photo I took at the Musée d’Orsay in Paris, France. The artwork is Ours blanc by François Pompon (1922).
