A custom Powerline segment for displaying the current Kubernetes context and namespace.
$ pip install powerline-k8s
Add the following config items to your Powerline colorscheme config file (usually located at ~/.config/powerline/colorschemes/
),
see Powerline Colorschemes for more info.
{
"k8s": { "fg": "solarized:blue", "bg": "solarized:base02", "attrs": [] },
"k8s_namespace": { "fg": "solarized:red", "bg": "solarized:base02", "attrs": [] },
"k8s_context": { "fg": "solarized:blue", "bg": "solarized:base02", "attrs": [] },
"k8s:divider": { "fg": "gray4", "bg": "solarized:base02", "attrs": [] }
}
Add the following config item to your Powerline segments config file, see Powerline Segment reference for more info.
{
"function": "powerline_k8s.k8s",
"priority": 30
}
- If adding the segment to the shell, edit
~/.config/powerline/themes/shell/default.json
. - If adding the segment to the tmux status line, edit
~/.config/powerline/themes/tmux/default.json
.
If your Kubernetes config file is not in the default location ~/.kube/config
, you can point to it by setting
the value of the $KUBECONFIG
environment variable to where your config file is.
Toggle entire segment or specific section's visibility with the following environment variables:
POWERLINE_K8S_SHOW
POWERLINE_K8S_SHOW_NS
Note: Full segment visibility takes precedence over namespace section visibility.
# toggle segment visibility
$ POWERLINE_K8S_SHOW=0 powerline-daemon --replace # hide powerline-k8s segment
$ POWERLINE_K8S_SHOW=1 powerline-daemon --replace # show powerline-k8s segment (default)
# toggle namespace section visibility
$ POWERLINE_K8S_SHOW_NS=0 powerline-daemon --replace # hide namespace section
$ POWERLINE_K8S_SHOW_NS=1 powerline-daemon --replace # show namespace section (default)
Alternatively you can add the following function to your shell for easier toggling:
toggle_powerline_k8s() {
case "$1" in
# pass the '-ns' flag to toggle namespace visibility
"-ns" | "--namespace")
if [[ "${POWERLINE_K8S_SHOW_NS:-1}" -eq 1 ]]; then
export POWERLINE_K8S_SHOW_NS=0
else
export POWERLINE_K8S_SHOW_NS=1
fi
;;
*)
# toggle segment visibility
if [[ "${POWERLINE_K8S_SHOW:-1}" -eq 1 ]]; then
export POWERLINE_K8S_SHOW=0
else
export POWERLINE_K8S_SHOW=1
fi
;;
esac
}