kelmというk8sのリソースとアクションをインタラクティブに選択・実行するツールを作っている

https://github.com/takaishi/kelm

少し前に投稿したプロトタイプを綺麗にしてパッケージングしました。

これは何か?

k8sの名前空間、Kind、リソース、アクションを順番に選択することで任意の処理を実行するためのツールです。プロトタイプの動画を見ると雰囲気はわかると思う。

k8s、クラスターから始まって名前空間、Kind、リソースなど選択項目がすごく多くて、 kubectl get pods した後にPod名をコピーして kubectl describe pod XXXXX する、というような操作が多い。これを楽にしたいなあと思い、kelmを作ることにした。

体験としてはpecoのようなツールや、Emacsの拡張であるHelmをベースに設計している。特に、アクションについては利用者が任意の処理をあれこれできるようにしたいと考えており、選択したリソースを外部コマンドに渡したりできる。なので、kubectlを呼び出すだけではなくsternに渡してログを読んだり、将来的には実行結果をjsonで出力してjqで加工、クリップボードにコピーするということも視野に入れている。