私たちは、YAML設定ファイルを含むワークフローを実装し、実際に使用する前にいくつかのことを変更してこれを実行するための良いコマンドラインツールを探しています。
これは、既存のノードにターゲット固有の値(URLなど)を設定するのと同じくらい簡単な場合がありますが、YAMLファイルのブロック全体を追加または変更できると便利です。完璧な世界では、XSLTの軸と同じくらい強力なものが欲しいです。
私たちはこれをDockerファイルのMavenで使用します。私たちはDebianベースのイメージを好みますが、必ずしも必要ではありません。
ベストアンサー1
マイクパラyq
YAMLの仕事のために私が楽しんで使用するツールです。たとえば、Kubernetes名前空間定義ファイルを使用すると、次のようになります。
名前空間名の抽出:
yq read deploy/namespace.yaml metadata.name
タグを追加:
yq write deploy/namespace.yaml metadata.labels.name demo
(これにより、既存のノードが置き換えられるか、まだノードがない場合は新しいノードが追加されます。)
この-i
オプションを使用すると、ファイルを現在の場所から更新できます。
XSLTツールが通常行うことができるすべてのタスクを見つけることはできません(またはjq
たとえば、JSONの場合、サブ式のテストが見つからないため(私が知っている限り)、「この値の他のサブノードがあるノードでのこのサブノードの更新」に対応するものを作成することはできません。