Node.jsのバージョン管理ツールであるnっぽい、Kustomizeバージョン管理ツールを書いてみました。
元々kustomizeをインストールするためのサポートスクリプトがあって、これは指定したバージョンをインストールすることも可能なんだけど、複数バージョンをいい感じに扱うのはできなかったです。
そして、複数バージョンのkustomizeが使いたくなるケースが増えてきたので、nを参考にしつつ最低限のコマンドだけ書くかーと思い立ちました。 Argo CDで使うKustomizeのバージョンを固定化しているケースなどでは、ローカルで複数バージョンのkustomizeを動かしたいケースもそれなりにあるので、 こうしたツールが欲しいと探していたけど、パッと見つからなかったですし。
インストール
基本的にREADMEに書いてある通りで、kzのスクリプトファイルをダウンロードして実行権限を付与してパスが通るところに配置すればOK。
curl -L https://raw.githubusercontent.com/corrupt952/kz/main/bin/kz -o kz chmod u+x kz mv kz /path/to/bin
後は環境変数を設定するのがオススメ。
nのようにデフォルトだと、/usr/local
にインストールしようとするので、それが嫌なら$HOME/.cache
とかにインストールすると良いです。
export KZ_PREFIX=$HOME/.cache/kz export PATH=$KZ_PREFIX/bin:$PATH
使い方
kustomizeのインストール
nのような操作感でKustomizeをインストールできます。
インストール後には、$KZ_PREFIX/bin
に指定したバージョンのバイナリへのシンボリックリンクを配置します。
正直なところ、次で説明するuseと差別化はできていないですね。
kz i v3.9.3 kustomize version # {kustomize/v3.9.3 2021-02-07T17:02:13Z }
バージョンの切り替え
指定したバージョンのkustomizeへのシンボリックリンクを、$KZ_PREFIX/bin
に指定したバージョンのバイナリへのシンボリックリンクを配置します。
指定したバージョンがインストールされていなかったらインストールするようにもしています。
kz use v3.9.3 kustomize version # {kustomize/v3.9.3 2021-02-07T17:02:13Z }
指定したバージョンでの実行
$KZ_PREFIX/bin
にパスを通したり、切り替えをしなくても指定したバージョンのkustomizeで、
コマンドを実行するexec
も追加してみました。
kz exec v3.9.3 vesrion --short # {kustomize/v3.9.3 2021-02-07T17:02:13Z } kz exec v4.4.0 vesrion --short # {kustomize/v4.4.0 2021-09-27T16:24:12Z }
複数バージョンのkustomize間でビルドしたマニフェストを比較したい時に重宝しています。
さいごに
それぞれのバージョンのkustomizeコンテナでやれっていう話かもしれないけど、ローカルで動かせるバイナリに関してはローカルで動かしたほうが速いので許してください 🙇 あと、似たようなツールでいい感じのがあれば教えて下さい!