メインコンテンツまでスキップ

ArgoCD Image Updaterを統合する

このガイドでは、Image Updaterを使用してArgoCDでアプリケーションをデプロイする方法を説明します。Argo CD Image Updater機能を使用するには、Portal経由でサービスを有効にし、secret/secret registry/Container registryなどの認証情報を設定します。

準備

ステップ1: デプロイソースを準備する

デプロイソースはHelmチャートです。

例: ArgoCDにHelmチャートでnginxサービスをデプロイします。デプロイするチャートを準備します:

デプロイするimageはcontainer registryで管理されます。このデモではFPT Cloudのcontainer registryを使用します。

Argo CD Image Updaterはアプリケーションデプロイパラメーターを保存するためのGit write-backメソッドをサポートしています。デフォルトでは、Argo CD Image Updaterはパラメーターを .argocd-source-<app-name>.yaml というファイルに保存します。これにより、ArgoCDはGitに保存されたパラメーターに従ってアプリケーションをデプロイできます。

例: .argocd-source-demo-images-updater.yaml ファイルを以下の内容で作成します:

helm:
parameters:
- name: image.name
value: registry.fke.fptcloud.com/a6762c5a-56d1-4285-b4bc-b61177a171e1/nginx
forcestring: true
- name: image.tag
value: dev-742b0343
forcestring: true

ステップ2: PortalでimageのpullSecretを設定する

例: Secret RegistryをContainer Registry上の変更確認に使用します。pullSecretの名前: habor-secret

Secret RegistryはアプリケーションのannotationsとGitで使用されます。

ステップ3: ArgoCDでApplicationを作成する

次に Edit as yaml 機能を使用してannotationsを設定します:

Image Updaterを使用するためのannotationsを追加します:

アノテーション説明
argocd-image-updater.argoproj.io/demo-images-updater.allow-tags: regexp:^dev-[0-9a-f]{8}$リポジトリへの更新に許可するタグ名を指定します。例: 「dev-」と8桁の16進数文字列に一致する正規表現のタグのみ許可します。例: dev-a5fb3d31
argocd-image-updater.argoproj.io/****.pull-secret: pullsecret:argocd-ebwa49tw/habor-secretArgoCD Image UpdaterがレジストリでimageタグをチェックするためのpullSecret。形式: pullsecret:argocd-[argocd-id]/[Secret-registry-name]
argocd-image-updater.argoproj.io/****.update-strategy: latestArgo CD Image Updaterがレジストリで更新されたimageの新バージョンを見つける方法。戦略: Semver(セマンティックバージョニングの最新版)、Latest(最近プッシュされたタグ)、Digest(SHA digestを使用した最新バージョン)、Name(アルファベット順)
argocd-image-updater.argoproj.io/git-branch: mastermanifestの変更を更新するブランチ
argocd-image-updater.argoproj.io/write-back-method: gitimageの変更を更新する方法
argocd-image-updater.argoproj.io/image-list: =registry.fke.fptcloud.com/a6762c5a-56d1-4285-b4bc-b61177a171e1/nginx更新を追跡するimageのリスト

ステップ4: Container RegistryでimageタグをアップデートするときにGitへの変更を検出するためのwebhookを設定する

  • Portalでgitlab webhookを作成します:

  • GitLabでwebhookを設定します:

pushイベントのテスト:

ステップ5: アプリケーションを確認する

新しいimageをpushする前に、アプリケーションで実行中のimageを確認します:

レジストリに新しいimageをpushします:

Argo CD Image UpdaterがGitに新しいimageを更新します:

GitLab webhookが変更を検出して新しいimageをデプロイします:

許可されていない形式のimageをpushした場合は拒否されることを確認します:

アプリケーションに変更がないことを確認します: