動かざることバグの如し

近づきたいよ 君の理想に

KubernetesのコンテキストをIterm2で常に表示させる方法

やりたいこと

Kubernetesを使っていて、stagingやproductionのような環境を切り替えるとき、またはnamespaceを確認するときに、いつも確認するのが本当にダルいと感じていた。

ターミナルで毎回確認するのも面倒だったので、ずっと表示されていてほしかった。zshを使っていると、設定をいじれば表示できるようだったが、複雑そうだった。

そこで、iterm2のStatus Bar機能を使えば簡単に表示できそうだったので、試してみることにした。

結果的には以下のようにリアルタイムでKubernetesのコンテキストとNamespaceを表示できる。

picture 3

やり方

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の設定

あとはステータスバーを表示する設定をするだけ

picture 1

picture 2

参考リンク