A simple terminal dashboard for Kubernetes built with Rust
Thanks to the sponsors of @deepu105 who makes maintaining projects like KDash sustainable. Consider sponsoring if you like the work.
brew tap kdash-rs/kdash
brew install kdash
# If you need to be more specific, use:
brew install kdash-rs/kdash/kdash
To upgrade
brew upgrade kdash
scoop bucket add kdash-bucket https://github.com/kdash-rs/scoop-kdash
scoop install kdash
Chocolatey package is located here. Since validation of the package takes forever, it may take a long while to become available after a release. I would recommend using Scoop instead for Windows.
choco install kdash
# Version number may be required for newer releases, if available:
choco install kdash --version=0.4.3
To upgrade
choco upgrade kdash --version=0.4.3
If you have Cargo installed then you install KDash from crates.io
cargo install kdash
# if you face issues with k8s-openapi crate try the below
cargo install --locked kdash
You can also clone the repo and run cargo run
or make
to build and run the app
Try out kdash via nix run nixpkgs#kdash
or add kdash
to your
configuration.nix
for permanent installation.
Run the below command to install the latest binary. Run with sudo if you don't have write access to /usr/local/bin
. Else the script will install to the current directory
curl https://raw.githubusercontent.com/kdash-rs/kdash/main/deployment/getLatest.sh | bash
Binaries for macOS (x86_64, arm64), Linux GNU/MUSL(x86_64, armv6, armv7, aarch64) and Windows (x86_64, aarch64) are available on the releases page
- Download the latest binary for your OS.
- For Linux/macOS:
cd
to the file you just downloaded and runtar -C /usr/local/bin -xzf downloaded-file-name
. Use sudo if required.- Run with
kdash
- For Windows:
- Use 7-Zip or TarTool to unpack the tar file.
- Run the executable file
kdash.exe
Run KDash as a Docker container by mounting your KUBECONFIG
. For example the below command for the default path
docker run --rm -it -v ~/.kube/config:/root/.kube/config deepu105/kdash
# If you want localhost access from the container
docker run --network host --rm -it -v ~/.kube/config:/root/.kube/config deepu105/kdash
You can also clone this repo and run make docker
to build a docker image locally and run it using the above command
Note: This may not work properly if you run Kubernetes locally using Minikube or Kind
Note: On Debian/Ubuntu you might need to install
libxcb-xfixes0-dev
andlibxcb-shape0-dev
. On Fedoralibxcb
andlibxcb-devel
would be needed.
Note: On Linux you might need to have package
xorg-dev
(Debian/Ubuntu) orxorg-x11-server-devel
(Fedora) or equivalent installed for the copy to clipboard features to work
Note: If you are getting compilation error from openSSL. Make sure perl and perl-core are installed for your OS.
kdash
Press ?
while running the app to see keybindings
-h, --help
: Prints help information-V, --version
: Prints version information-t, --tick-rate <tick-rate>
: Set the tick rate (milliseconds): the lower the number the higher the FPS.-p, --poll-rate <poll-rate>
: Set the network call polling rate (milliseconds, should be multiples of tick-rate): the lower the number the higher the network calls.-d, --debug[=<debug>]
: Enables debug mode and writes logs tokdash-debug-<timestamp>.log
file in the current directory. Default behavior is to write INFO logs. Pass a log level to overwrite the default [possible values: info, debug, trace, warn, error]
- [Linux/Docker] Copy to clipboard feature is OS/arch dependent and might crash in some Linux distros and is not supported on
aarch64
andarm
machines. - [macOS] KDash looks better on iTerm2 since macOS's default Terminal app makes the colors render weird.
- [Windows] KDash looks better on CMD since Powershell's default theme makes the colors look weird.
- [Windows] If using k3d for local clusters, set the server URL to 127.0.0.1 as 0.0.0.0 doesn't work with kube-rs. You can use
k3d cluster create --api-port 127.0.0.1:6550
or change thecluster.server
value in your.kube/config
for the k3d cluster to127.0.0.1:<port>
.
- CLI info
- Node metrics
- Resource watch (configurable polling interval with
-p
flag) - Custom resource definitions
- Describe resources & copy the output
- Get YAML for resources & copy the output
- Stream container logs
- Context
- Context info
- Context watch
- Change namespace
- Context switch
- Resources utilizations for nodes, pods and namespaces based on metrics server. Requires metrics-server to be deployed on the cluster.
- Dark/Light themes
- Sensible keyboard shortcuts
- Global glob filtering for resource names
K9S is a beast compared to this as it offers way more features including CRUD actions.
KDash only offers a view of the resources with a focus on speed and UX. Really, if something is slow or has bad UX then please raise a bug. Hence the UI/UX is designed to be more user-friendly and easier to navigate with contextual help everywhere and a tab system to switch between different resources easily.
At least for now, there are no plans to add full CRUD for resources but in the future, we might.
MIT