zsh-kubectl-prompt
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
.zshrc
by 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
.zshrc
or restart your shell after step 2
License
This script is released under the MIT License.