When using Kubernetes, kubectl is the command we use the most to visualize and debug objects.
However, it currently does not support colored output, though there is a feature request opened for this.
Let's see how we can add color support. I'll be using zsh with oh my zsh.
Edit: this feature was merged in oh my zsh, so it is now standard.
Zsh plugin
Let's make this extension into a zsh plugin called kubectl_color:
❯ mkdir -p ~/.oh-my-zsh/custom/plugins/kubectl_color ❯ touch ~/.oh-my-zsh/custom/plugins/kubectl_color/kubectl_color.plugin.zsh Now we need to fill in this plugin.
JSON colorizing
Let's start with JSON, by adding an alias that colorizes JSON output using the infamous jq:
kj() { kubectl "$@" -o json | jq } compdef kj=kubectl The compdef line ensures the kj function gets autocompleted just like kubectl.
Edit: I've added another wrapper for fx, which provides a dynamic way to parse JSON:
kjx() { kubectl "$@" -o json | fx } compdef kjx=kubectl YAML colorizing
Just like for JSON, we can use yh to colorize YAML output:
ky() { kubectl "$@" -o yaml | yh } compdef ky=kubectl Energize!
Our plugin is now ready, we only need to activate it in ~/.zshrc by adding it to the list of plugins, e.g.:
plugins=(git ruby kubectl kubectl_color) and with fx:
Top comments (1)
Its a good one. Thanks