dotfiles/zsh/.oh-my-zsh/plugins/kube-ps1/README.md

3.2 KiB

Kubernetes prompt for zsh

A Kubernetes zsh prompt that displays the current cluster cluster and the namespace.

Inspired by several tools used to simplify usage of kubectl

NOTE: If you are not using zsh, check out kube-ps1 designed for bash as well as zsh.

Requirements

The default prompt assumes you have the kubectl command line utility installed. It can be obtained here:

Install and Set up kubectl

If using this with OpenShift, the oc tool needs installed. It can be obtained from here:

OC Client Tools

Helper utilities

There are several great tools that make using kubectl very enjoyable.

kubectx and kubenx are great for fast switching between clusters and namespaces.

Prompt Structure

The prompt layout is:

(<symbol>|<cluster>:<namespace>)

Enabling

In order to use kube-ps1 with Oh My Zsh, you'll need to enable them in the .zshrc file. You'll find the zshrc file in your $HOME directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.

vim $HOME/.zshrc

Add kube-ps1 to the list of enabled plugins and enable it on the prompt:

plugins=(
  git
  kube-ps1
)

# After the "source Oh My Zsh" line
PROMPT=$PROMPT'$(kube_ps1) '

Note: The PROMPT example above was tested with the theme robbyrussell.

Enabling / Disabling on the current shell

Sometimes the kubernetes information can be anoying, you can easily switch it on and off with the following commands:

kubeon
kubeoff

Colors

Blue was used as the prefix to match the Kubernetes color as closely as possible. Red was chosen as the cluster name to stand out, and cyan for the namespace. Check the customization section for changing them.

Customization

The default settings can be overridden in ~/.zshrc

Variable Default Meaning
KUBE_PS1_BINARY kubectl Default Kubernetes binary
KUBE_PS1_PREFIX ( Prompt opening character
KUBE_PS1_SYMBOL_ENABLE true Display the prompt Symbol. If set to false, this will also disable KUBE_PS1_SEPARATOR
KUBE_PS1_SYMBOL_DEFAULT Default prompt symbol. Unicode \u2388
KUBE_PS1_SYMBOL_USE_IMG false ☸️ , Unicode \u2638 as the prompt symbol
KUBE_PS1_NS_ENABLE true Display the namespace. If set to false, this will also disable KUBE_PS1_DIVIDER
KUBE_PS1_SEPERATOR | Separator between symbol and cluster name
KUBE_PS1_DIVIDER : Separator between cluster and namespace
KUBE_PS1_SUFFIX ) Prompt closing character
KUBE_PS1_COLOR_SYMBOL "%F{blue}" Custom color for the symbol
KUBE_PS1_COLOR_CONTEXT "%F{red}" Custom color for the context
KUBE_PS1_COLOR_NS "%F{cyan}" Custom color for the namespace
KUBE_PS1_ENABLED true Set to false to start disabled on any new shell, kubeon/kubeoff will flip this value on the current shell

Contributors

  • Jared Yanovich
  • Pedro Moranga