Display information about the kubectl current context and namespace in zsh prompt.
MIT License
This script displays information about the kubectl current context and namespace in zsh prompt.
Clone this repository and source the kubectl.zsh
from your ~/.zshrc
config file, and configure your prompt.
autoload -U colors; colors
source /path/to/zsh-kubectl-prompt/kubectl.zsh
RPROMPT='%{$fg[blue]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}'
Or create different style depending on user, context, namespace. The plugin creates 4 variables:
For example, make the prompt red when the username matches admin.
autoload -U colors; colors
source /path/to/zsh-kubectl-prompt/kubectl.zsh
function right_prompt() {
local color="blue"
if [[ "$ZSH_KUBECTL_USER" =~ "admin" ]]; then
color=red
fi
echo "%{$fg[$color]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}"
}
RPROMPT='$(right_prompt)'
Also you can install with homebrew.
brew tap superbrothers/zsh-kubectl-prompt
brew install zsh-kubectl-prompt
Change the separator between context and namespace:
zstyle ':zsh-kubectl-prompt:' separator '|'
Add custom character before the prompt:
zstyle ':zsh-kubectl-prompt:' preprompt '<'
Add custom character after the prompt:
zstyle ':zsh-kubectl-prompt:' postprompt '>'
Does not display the current namespace:
zstyle ':zsh-kubectl-prompt:' namespace false
Use another binary instead of kubectl
to get the information (e.g. oc
):
zstyle ':zsh-kubectl-prompt:' binary 'oc'
If you use zgen, load this repository as follows:
source "${HOME}/.zgen/zgen.zsh"
# if the init script doesn't exist
if ! zgen saved; then
# specify plugins here
zgen load superbrothers/zsh-kubectl-prompt
# generate the init script from plugins above
zgen save
fi
autoload -U colors; colors
RPROMPT='%{$fg[blue]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}'
If you use antigen, load this repository as follows:
source /path-to-antigen/antigen.zsh
# load this plugin
antigen bundle superbrothers/zsh-kubectl-prompt
# tell antigen that you're done.
antigen apply
autoload -U colors; colors
RPROMPT='%{$fg[blue]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}'
If you use oh-my-zsh, load this repository as follows:
git clone https://github.com/superbrothers/zsh-kubectl-prompt.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-kubectl-prompt
.zshrc
by appending it to the plugin sectionplugins=( [plugins...] zsh-kubectl-prompt)
RPROMPT='%{$fg[blue]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}'
Note: Remember to source the
.zshrc
or restart your shell after step 2
This script is released under the MIT License.