kubectlでたくさんのクラスタを扱うと、contextをいちいち切り替えるのが大変なので、
簡単なコンテキストスイッチャーをBashコマンドにしました。
下記のやり方はOSXで検証していますが、Linux系でも問題なく動くかと思います。
使い方
Requirements
事前にpecoのインストールが必要です。
osx
brew install peco
実装
下記のコードを、~/.bash_profile
などに追加すれば使えます。
~/.bash_profile
function kubeswitch() {
kcontext=$(kubectl config get-contexts | peco --initial-index=1 --prompt='kubectl config use-context > ' | sed -e 's/^\*//' | awk '{print $1}')
if [ -n "$kcontext" ]; then
kubectl config use-context $kcontext
fi
}
亜種: gcloudswitch
gcloudswitch () {
project=$(gcloud projects list | peco --initial-index=1 --prompt='gcloud config set project > ' | sed -e 's/^\*//' | awk '{print $1}')
if [ -n "$project" ]; then
echo "Switch to ${project}."
gcloud config set project $project
fi
}
亜種2: awswitch
awswitch () {
choice=$(aws configure list-profiles | peco --initial-index=1 --prompt='Choose profile' | awk '{print $1}')
if [ -n "$choice" ]; then
export AWS_PROFILE=$choice
fi
}