tmuxのステータスラインにk8sのvwntextとnamespaceを表示する

複数のk8sクラスタに接続する頻度が増えてきたので、現在どのコンテキストへ接続しているのかが分かりやすくtmuxのステータスラインに表示するようにしました.

f:id:corrupt952:20210127074407p:plain

この画像で言えば(kind-ira/owncloud)が、それぞれ現在選択するContextとNamespaceです.
実際の設定は、

set-option -g status-right "#[fg=colour33]#(/bin/bash ${HOME}/bin/tmux-kubectl) #[fg=green][#S:#I.#P]"

と定義し、スクリプトの実行結果をステータスラインに表示しています.
細かいケースを考慮できていないかもしれませんが、スクリプトは以下のように定義しています.

#!/usr/bin/env bash

if [[ -z "$(which kubectl 2>/dev/null)" ]]; then
    echo "kubectl doesn't exist"
    exit 1
fi

kubeconfig="$HOME/.kube/config"
if [[ -n "${KUBECONFIG}" ]]; then
    kubeconfig=${KUBECONFIG}
fi

context="$(kubectl config current-context 2>/dev/null)"
if [[ -z "${context}" ]]; then
    echo "current-context doesn't exist"
    exit 1
fi

namespace="$(kubectl config view -o "jsonpath={.contexts[?(@.name==\"${context}\")].context.namespace}" 2>/dev/null)"
[[ -z "${namespace}" ]] && namespace="default"

echo "(${context}/${namespace})"

今後、使っていく時に何か不都合があれば少しずつ改善していきますか.