helmfile がステキになってた

helmfile は 複数の Helm Chart をまとめて Kubernetes cluster にデプロイするツールです。

github.com

Helm のラッパーとなっており、複数の Chart から構成されるアプリを効率よくデプロイ、更新できます。Helm Chart のインストール順というか依存関係の管理もできますし、デプロイ前後のフックでなにかの処理を実行したりすることも可能です。Helm と同様 Go Template が使えるので sed で置換したりが不要になります。

個人プロジェクトのようですが、開発は活発で contributer は 130人越えです。

Even though Helmfile is used in production environments across multiple organizations, it is still in its early stage of development, hence versioned 0.x.

とのことで 現在 v0.125.8。いいかげん v1.0 リリースしてもいい気ががします。

helmfile 便利なので自分も GitHub Actions で helmfile をセットアップする Action を作って公開してるほどです。

github.com

けっこう古いバージョンを使っていて最新を追ってなかったのですが、いつの間にか Helm Chart だけでなく Kustomize や Plain manifest のデプロイも対応してました(v0.118.0)。

Release v0.118.0: feat: GA of Kustomize and K8s manifests support (#1172) · roboll/helmfile · GitHub

Kustomize のアプリも plain manifest も local chart として扱えるので kubectl や kustomize コマンドを別途叩かなくてもよくなりました。

その少し前、namespace がなかったら作るという機能も追加されてました。

Release v0.113.0: Support for createNamespace (#1226) · roboll/helmfile · GitHub

デプロイ先の namespace は手順やシェルスクリプト内で別途作るので、作り忘れ、消し忘れが発生しやすい部分ですが、これで helmfile にお任せできるようになりました。