第4章 Argo CD Image Updater を使用する
Argo CD イメージアップデーターを使用すると、Argo CD で管理されているワークロードのコンテナーイメージのバージョンを自動的に更新できます。イメージアップデーターは、コンテナーレジストリーを監視して新しいイメージバージョンを検出し、ユーザー定義の制約に一致する新しいバージョンが見つかった場合に、Argo CD アプリケーションを更新します。
4.1. Argo CD イメージアップデーターについて リンクのコピーリンクがクリップボードにコピーされました!
Argo CD Image Updater は、Argo CD によって管理されるワークロードのコンテナーイメージのバージョンを自動的に更新します。コンテナーレジストリーを監視し、設定されたバージョン制約に一致する新しいイメージタグを検出し、Argo CD を介してアプリケーションを更新します。
Red Hat OpenShift GitOps Operator では、Argo CD Image Updater は製品化されたコントローラーとして提供されており、Argo CD カスタムリソースを通じて有効化できます。
Argo CD イメージアップデーターコントローラーは、設定済みの Argo CD アプリケーションを継続的に監視し、コンテナーレジストリーに新しいイメージバージョンを照会するリコンシリエーションループを実行します。対象となる新バージョンが検出されると、コントローラーは Argo CD にアプリケーションの更新を指示します。ImageUpdater の カスタムリソースを作成することで、追跡するイメージと適用するバージョン制約を定義します。
Argo CD アプリケーションの同期ポリシーに応じて、更新されたイメージは自動的にデプロイされるか、手動承認のために同期されていないものとしてマークされます。
イメージアップデーターは、以下の機能を提供します。
イメージの選択と更新動作
- セマンティックバージョンの制約、最新ビルドストラテジー、アルファベット順ソート、および SHA256 ダイジェスト追跡
- 正規表現とグロブパターンを使用したタグフィルタリング
アプリケーションサポート
- Helm および Kustomize アプリケーション
永続化と Git ワークフロー
- Argo CD アプリケーションリソースへの直接 API 書き戻し
- Git は設定リポジトリーにコミットします
- 承認ワークフローのためのプルリクエストとマージリクエスト
レジストリー統合
- Docker Hub、Red Hat Quay、GitHub Container Registry、GitLab Container Registry、Google Container Registry、Azure Container Registry、JFrog Artifactory、および Docker Registry v2 API 互換レジストリー
- Kubernetes シークレット、プルシークレット、環境変数、および外部スクリプトを使用した認証
- Docker Hub、GitHub Container Registry、Quay、Harbor からの即時更新を受け取るための Webhook
オブザーバビリティー
-
ステータス条件 (
準備完了、調整中、エラー) - 一致するアプリケーション数とイメージ数
- 更新履歴
Argo CD Image Updater には以下の制限事項があります。
- アプリケーションは Argo CD によって管理されなければなりません。スタンドアロンの Kubernetes ワークロードはサポートされていません。
- Kustomize でレンダリングされたマニフェストと Helm でレンダリングされたマニフェストのみがサポートされています。Helm チャートは、Argo CD イメージアップデーターコントローラーが変更できるように、イメージタグパラメーターを公開する必要があります。
- イメージプル用のシークレットは、Argo CD イメージアップデーターコントローラーが動作するクラスターと同じクラスター内に存在する必要があります。