Kubernetesのcurrent-contextをzshで表示する

複数のGKEクラスタを切り替えて使っていると(特に開発・ステージング・本番など)、いま使っているcontextを混同してしまいがちで、ステージング環境で開発向けのコマンドを打ってしまったりとかしたのでzshのプロンプトに環境をわかりやすく出すようにした。

f:id:road288:20171027114233p:plain

github.com

Usageの記載のとおりにbrewでインストール

brew tap superbrothers/zsh-kubectl-prompt git://github.com/superbrothers/zsh-kubectl-prompt.git
brew install zsh-kubectl-prompt

/usr/local/etc/zsh-kubectl-prompt/kubectl.zsh_zsh_kubectl_prompt_precmd() の後ろのほうに以下の記載を追加(変更)

zstyle -s ':zsh-kubectl-prompt:' separator separator
ZSH_KUBECTL_PROMPT_TMP="${context}${separator}${ns}"
ZSH_KUBECTL_PROMPT=`echo $ZSH_KUBECTL_PROMPT_TMP | perl -wnl -e '/(任意の正規表現)/ and print $1'`
if [[ -z "$ZSH_KUBECTL_PROMPT" ]] && ZSH_KUBECTL_PROMPT=$ZSH_KUBECTL_PROMPT_TMP

case "$ZSH_KUBECTL_PROMPT" in
  "dev") PCOLOR="green" ;;
  "stg") PCOLOR="magenta" ;;
  "prd") PCOLOR="yellow" ;;
  *)       PCOLOR="blue" ;;
esac

色のリストはここを見た。 zshでプロンプトをカラー表示する - Qiita

zshrcに追加

autoload -U colors; colors
source /path/to/zsh-kubectl-prompt/kubectl.zsh
RPROMPT='%{$fg[$PCOLOR]%}($ZSH_KUBECTL_PROMPT)%{$reset_color%}'