Beautiful command line interface for Windows 10 optimized for working with git and Kubernetes.
NB Guide has been updated to use Homebrew
- Windows 10
- Windows Subsystem for Linux. I use Ubuntu 18.04
The rest of this guide will use Homebrew https://brew.sh/ to install most of the tools
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Install Powerline, Windows compatible font from this repo https://github.com/ryanoasis/nerd-fonts. You need to install version 1.2.0 since version 2.0.0 don't work with Windows.
Download this asset https://github.com/ryanoasis/nerd-fonts/releases/download/v1.2.0/DejaVuSansMono.zip.
Unzip file and install the DejaVu Sans Mono for Powerline Nerd Font Complete Mono Windows Compatible.ttf
font by right-clicking on the file and select install.
Open the WSL options and change font to DejaVuSansMonoPowerline NF
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k
nano ~/.zshrc
Open .zsh in nano and change/add the following settings
ZSH_THEME="powerlevel10k/powerlevel10k"
POWERLEVEL9K_MODE='nerdfont-complete'
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_writable vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status kubecontext time)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
# If you have installed Windows 10 1903 then you can skip the next line
POWERLEVEL9K_COLOR_SCHEME='light'
Restart your WSL command prompt and it will look great
brew install kubernetes-cli
Add your colon delimited list of Kubernetes config files to KUBECONFIG env variable in .zshrc file
nano ~/.zshrc
Add the follwing at the end of the file and change paths to your config files. I choose to point them to my Windows k8s config files that I also use in Powershell
export KUBECONFIG="/mnt/c/dev/kubernetes/rnd-admin.conf:/mnt/c/Users/janl/.kube/config"
Run command to add completion
echo "source <(kubectl completion zsh)" >> ~/.zshrc
Add shorthand alias for kubectl
nano ~/.zshrc
Add the following to the end of the .zshrc file
alias k=kubectl
complete -F __start_kubectl k
Restart your WSL command prompt and you will see the Kubernetes context and have code completion for both kubectl and the alias k
brew install helm
Run command to add completion
echo "source <(helm completion zsh)" >> ~/.zshrc
Restart your WSL command prompt and you will have helm command with completion
Tools for fast switching between clusters and namespaces
sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens
Run commands to add completion
mkdir -p ~/.oh-my-zsh/completions
chmod -R 755 ~/.oh-my-zsh/completions
ln -s /opt/kubectx/completion/kubectx.zsh ~/.oh-my-zsh/completions/_kubectx
ln -s /opt/kubectx/completion/kubens.zsh ~/.oh-my-zsh/completions/_kubens
Add kns and kctx aliases at the end of your ~/.zshrc file
Also add the rm -f ~/.zcompdump; compinit
to fix an issue with completion for kubens and kubectx
alias kns=kubens
alias kctx=kubectx
rm -f ~/.zcompdump; compinit
Restart your WSL command prompt and you will have kubens and kubectx available with completion.
The best CLI for managing Kubernetes https://k9scli.io/
brew install derailed/k9s/k9s
- https://github.com/ryanoasis/nerd-fonts
- https://github.com/robbyrussell/oh-my-zsh
- https://github.com/bhilburn/powerlevel9k
- https://github.com/romkatv/powerlevel10k
- https://kubernetes.io/docs/reference/kubectl/cheatsheet/
- https://helm.sh/docs/using_helm/#installing-helm
- https://github.com/ahmetb/kubectx