Flux Beyond Git: Harnessing the Power of OCI
FluxというGitOpsツールをご存知でしょうか。Azure Kubernetes ServiceでもAdd-onとして提供されています。
こちらのブログでも取り上げたことがありますね。
このFluxでOCIの対応が進んでいます。
OCIとは
OCI (Open Container Initiative)は、コンテナイメージをアプリケーションのイメージだけではなくコンフィグレーション等をイメージとして作成するものです。アプリケーションとコンフィグレーション等のイメージ双方を格納することでコンテナレジストリがUnified Artifact Registryとして扱うことができます。
従来GitOpsではGitHubなどのコードリポジトリを利用していました。しかし、もともとこうしたコードリポジトリはGitOpsの用途のためには作られておらず、認証TOKENが必要であったり、GitOpsを実現するために若干複雑なブランチ戦略が必要になったりと、なにかと複雑度が増すことが多かったのです。
これに足してコンテナイメージは、Kubernetesがコンテナイメージをレジストリから取得しなければ何も始まらない(アプリケーションのコンテナイメージを取得する必要があるため)ということもあり、アクセス制御が当初から組み込まれているという利点があります。FluxのようなGitOpsで認証TOKENをどこかに保存するといったことが不要になるのです。コードからイメージを作成し、タグを付与するといったCIのフローと、コンテナイメージの変更を検知してその内容に従ってCDを実行するといったように開発フローも適切に分離できるため、OCIの利用は利点が多くあります。さらにOCIを利用することで、HelmChartやTerraformModuleなどArtifactsの共有ということも比較的簡単・安全に実現できるようになります。
FluxでもHelmRepositoryや TerraformControllerでOCIの対応が進んでいます。
GitOpsはGitからOCIの活用にシフトしつつあるようです。より簡単に、よりセキュアに、開発ライフサイクルを実現するためにも積極的に活用していきましょう。
もちろん Azure Container RegistryもOCIに対応しています。