Open3

tmuxのステータスバーに現在使用しているkubernetes clusterを表示する

Somme4096Somme4096

まずは使用環境を確認してみます。

echo $SHELL
/usr/local/bin/fish

$ echo $KUBECONFIG
/Users/somme/.kube/staging-kubeconfig.yaml:/Users/somme/.kube/es-staging-kubeconfig.yaml

クラスタの名前も確認します。(実際のclusterの名前ではありません)

CURRENT   NAME            CLUSTER     AUTHINFO          NAMESPACE
*         lke102734-ctx   lke102734   lke102734-admin   default
          lke102735-ctx   lke102735   lke102735-admin   default
Somme4096Somme4096

次にkubernetesのcontextを取得するスクリプトをfishで書きます。

#!/usr/bin/env fish

while true
    echo (kubectl config current-context)
    sleep 10
end

ここでは10秒ごとに再取得するようにしています。もしnamespaceも表示したいのでしたら

    echo (kubectl config current-context) : (kubectl config view --minify -o jsonpath='{..namespace}')

でnamespaceも取得できます。(lke102734-ctx : defaultのような形式で表示されるはず)
このファイルを適当な場所に保存します。

Somme4096Somme4096

最後に、tmuxのステータスバーに表示させます。
私は

を使用しているので、@minimal-tmux-status-right-extraの場所に表示する形になります。デフォルトのステータスバーでしたら@minimal-tmux-status-right-extrastatus-rightなどに変更してください。
~/.tmux.confに追記します。

set -g @minimal-tmux-status-right "#(/Users/somme/.tmux/context.fish) " 

#(/Users/somme/.tmux/context.fish)は先ほど保存したスクリプトの場所を入れてください。
テキストスタイルを変更したい場合は、括弧の中に#[bg=,fg=,textstyle]を追記してください。例として背景の色を#8aadf4、テキストを太字に変更します。

set -g @minimal-tmux-status-right "#[bg=#8aadf4,fg=#000000,bald] #(Users/somme/.tmux/context.fish) " 

できました。contextを切り替えても数秒で反映されるので快適です。