やりたいこと
Kubernetesを使っていて、stagingやproductionのような環境を切り替えるとき、またはnamespaceを確認するときに、いつも確認するのが本当にダルいと感じていた。
ターミナルで毎回確認するのも面倒だったので、ずっと表示されていてほしかった。zshを使っていると、設定をいじれば表示できるようだったが、複雑そうだった。
そこで、iterm2のStatus Bar機能を使えば簡単に表示できそうだったので、試してみることにした。
結果的には以下のようにリアルタイムでKubernetesのコンテキストとNamespaceを表示できる。
やり方
iTerm2 Shell Integrationのインストール
iTerm2 Shell Integrationが必須なのでインストールする。すでにインストールしてあればスキップ
curl -L https://iterm2.com/shell_integration/zsh -o ~/.iterm2_shell_integration.zsh
以下を.zshrcに追記
source ~/.iterm2_shell_integration.zsh
ステータスバーの関数を実装
.zshrcのさっき追加した source ~/.iterm2_shell_integration.zsh
より 前に iterm2_print_user_varsを追加する
例えば以下はコンテキストとNamespaceの両方を表示する
function iterm2_print_user_vars() { iterm2_set_user_var kubecontext $(kubectl config current-context):$(kubectl config view --minify --output 'jsonpath={..namespace}') }
Iterm2の設定
あとはステータスバーを表示する設定をするだけ
- iTerm2 > Preferences > Profiles > Session > Configure Status Bar
- 「Interpolated String component」をActiveにドラッグアンドドロップ
- コンポーネント設定をクリック
- String を 「(user.kubecontext)」にする