すべての Kubernetes クラスター yaml ファイルを含む GitHub リポジトリがあります。デプロイメントを更新する場合は、yaml を編集して GitHub にプッシュするだけです。
残念ながら、私たちはkubectl apply -f file.yaml
ArgoCD や他の CD ツールなどを使用してデプロイメントを自動化するにはどうすればよいでしょうか?
GitHub にプッシュされると、YAML ファイルの変更がクラスターに自動的に適用されるワークフロー トリガーを用意したいと考えています。
私たちが直面している問題は、GitHub リポジトリが特定のデプロイメントに固有のものではなく、前述のようにクラスター全体のすべての YAML ファイルが含まれていることです。
現時点では、GitHub リポジトリ全体に kubectl を適用するのが唯一の選択肢だと考えていますが、変更されたのが 1 つのファイルだけの場合、これは意味がありません。
答え1
私は調べてみますフラックスFlux をリポジトリのルート (または特定のディレクトリ) にポイントすると、定義したマニフェストのデプロイが行われます。また、変更も検出されるため、リポジトリに変更をプッシュすると、Flux によって変更がロールアウトされます。
ArgoCD も機能します。ただし、リポジトリは特定のデプロイメントに固有ではなく、クラスター全体のマニフェストが含まれているとおっしゃったため、この場合は Flux の方が適している可能性があります。
両方または他のツールを試してみて、ワークフローに最適なものを確認することをお勧めします。