2020-05-14
5/14
kubectlのctx/nsをプロンプトに表示できるようにした
とりあえず個人用のmacOSだけ。下のコミットで実現:
どうせみんなやってるだろうと思ってググったら、案の定いっぱい出てきた。
スパブラさんがzshのプラグイン的なものを作っていて、使いやすそうだったのでこれを使うことにした。
vcs_info
と合わせるとごちゃごちゃしそうだったので、 precmd()
の中で RPROMPT
を料理するようにリファクタした。
(追記) Ubuntuでも設定した。
GKEのcontextとか長すぎてつらいなって思ったら、 kubectl config rename-context
ってコマンドがあることを知った。
bash対応
https://github.com/jonmosco/kube-ps1 を見つけた。zshにも対応してるので、最初からこっちでもよかったかも。
某現場では、一旦submoduleで組み込んだ。 .bashrc
に下のように追記した:
# kube-ps1
toggle_kubectl_prompt() {
if [[ -n "${__KUBECTL_PROMPT__:-}" ]]; then
__KUBECTL_PROMPT__=
PS1=$__base_ps1
else
__KUBECTL_PROMPT__=1
PS1="\$(kube_ps1)\n${__base_ps1}"
fi
}
if [[ ! -v __no_kubectl_configured ]]; then
if ! command -v kubectl &>/dev/null; then
__no_kubectl_configured=1
elif ! kubectl config current-context &>/dev/null; then
__no_kubectl_configured=1
fi
fi
if [[ ! -v __no_kubectl_configured ]]; then
source $MYENV_ROOT/submodule/kube-ps1/kube-ps1.sh
KUBE_PS1_PREFIX='<'
KUBE_PS1_SUFFIX='>'
__base_ps1=$PS1
if [[ ! -v __KUBECTL_PROMPT__ ]]; then
echo "Show Kubernetes context/namespace on prompt."
echo "Exec \"toggle_kubectl_prompt\" to hide/unhide."
__KUBECTL_PROMPT__=1
PS1="\$(kube_ps1)\n${__base_ps1}"
fi
fi
メモ:
toggle_kubectl_prompt
はzsh同様、ifの中でもいいかもKUBE_PS1_(PREFIX|SUFFIX)
は色変えられなかった
pecoでkubectx/ns相当の操作
最終更新 2020-05-24: [memo] Archive 2020051{3..5}.md (e420ed4e7)