【k8s】リソースの要素をインタラクティブに検索できるツール2選
jq yqコマンド便利だけどクエリの検証だり〜
ってひとにおすすめしたいツールを今回ご紹介。あ、どうもご無沙汰しております。
kubernetesクラスター上で作成されたリソースの情報を取得して要素を抽出する際によく用いられるコマンドとしてjqコマンドやyqコマンドがあります。これらはとても便利なのですが、少し複雑なクエリを作成しようとして失敗したり、typoに気付けず何度も失敗したりともやもやした経験はありませんか?
そんなもやもやを解消すべく、jqやyqのクエリをインタラクティブに実行して検証できる2つのツールをご紹介したいと思います。
jnv
はじめに紹介するのはjnvです。JSON形式のデータに対してインタラクティブに実行できるjqフィルターエディターです。
ynqa/jnv
上記リポジトリREADMEのデモ動画を見ていただければ挙動がすぐわかると思いますが、JSON形式の出力を対象に実行するとviwerが開きクエリを実行すると即座に反映されて結果が返ってくるというものです。
jqコマンドを何度も実行しなくてもこれがあればインタラクティブに必要な要素を取り出すクエリを確認することが可能です。
kubectl getの実行結果は-oオプションでアウトプット形式を指定できるのでJSONで出力してjnvをパイプで実行してあげると利用できます。例えば以下のような感じ
$ kubectl get pod test-pod -n test -o json | jnv
CI/CDやスクリプトにjqで要素を取り込む処理を追加したい場合などにはjnvを利用してクエリを組み立てていくのがよさそうです。
yd
続いてydの紹介です。こちらはjnvとは異なり内部でyqコマンドが利用されています。
こちらもリポジトリ内のデモ動画を確認いただければ挙動はすぐにご理解いただけるかと思います。
YAML形式のデータに対してインタラクティブに実行できるyqフィルターエディターですね。
kubectl getの実行結果は-oオプションでアウトプット形式を指定できるのでYAMLで出力してydをパイプで実行してあげると利用できます。例えば以下のような感じ
$ kubectl get pod test-pod -n test -o yaml | yd
CI/CDやスクリプトにyqで要素を取り込む処理を追加したい場合はjnvを利用してクエリを組み立てていくのがよさそうです。
また、kubernetes関連ファイルはyamlで記載されているので、特にJSONパースする必要なくファイルから要素を抜き出せたりするのもydの強みです。
cat deployment.yaml| yd
まとめ
今回はjnvとydの紹介でした。
今回あえてkubernetesのユースケースを前提にお話ししましたがJSON、YAML形式は他にもメチャクチャ多く使われているのでとても幅広く利用できるツールだと思います。
是非ともお試しいただき、製作者様に応援の意味も込めてGithub Starを贈っていただければと思います。
最後まで読んでいただきありがとうございました!