zsh-kubectl-prompt
May 15, 2023 ยท View on GitHub
This script displays information about the kubectl current context and namespace in zsh prompt.

Usage
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:
- ZSH_KUBECTL_CONTEXT
- ZSH_KUBECTL_NAMESPACE
- ZSH_KUBECTL_PROMPT
- ZSH_KUBECTL_USER
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
Customization
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'
With a plugin manager
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:
- Clone the repo into oh-my-zsh custom plugins folder
git clone https://github.com/superbrothers/zsh-kubectl-prompt.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-kubectl-prompt
- Activate the plugin your
.zshrcby appending it to the plugin section
plugins=( [plugins...] zsh-kubectl-prompt)
- Configure your prompt (or check how to customize the theme plugin you are using)
RPROMPT='%{$fg[blue]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}'
Note: Remember to source the
.zshrcor restart your shell after step 2
License
This script is released under the MIT License.