2.6. Argo CD でのアノテーションベースのリソース追跡の有効化


Red Hat OpenShift GitOps Operator は、Argo CD のアノテーションベースのリソース追跡を改善することで、マルチインスタンスのサポートを強化します。以前は、Argo CD インスタンスが複数ある場合、アプリケーション名が同じリソースを正しく識別できず、レガシーのラベルベースの追跡に依存していました。今回の機能拡張により、各インスタンスに一意の installationID ID を割り当てることで、アノテーションベースの追跡を完全に活用できるようになりました。これにより、リソースの競合を防ぎ、無限の同期ループがなくなり、安全な並列操作が可能になります。

OpenShift Container Platform Web コンソールを使用して、以下のアクションを実行できます。

  • 複数の Argo CD インスタンスをセットアップする
  • namespace に関連付けることで、アノテーションベースの追跡を設定する
  • デプロイメントを確認する
注記
  • リソース追跡の競合を防ぐため、各 Argo CD インスタンスには一意の installationID の ID が必要です。
  • 各 Argo CD インスタンスが目的のリソースのみを管理できるように、namespace に正確にラベルが付けられていることを確認します。
  • 複数のインスタンスに同じ名前のアプリケーションがある場合は、リソース追跡を annotation+label に設定します。
  • 問題が発生した場合には、Argo CD Application のステータスと、OpenShift Container Platform Web コンソールでログを確認します。

2.6.1. 複数の Argo CD インスタンスでのアノテーションベースの追跡の設定

複数の Argo CD インスタンスでアノテーションベースの追跡を設定できます。

注記

この手順では、以下の値を例として使用します。

  • repoURL: https://github.com/redhat-developer/gitops-operator
  • server: https://kubernetes.default.svc

これらの手順に従う場合は、例として提示された値を実際の値に置き換えます。

前提条件

  • OpenShift Container Platform クラスターに管理者としてログインしている。
  • Red Hat OpenShift GitOps Operator が OpenShift Container Platform クラスターにインストールされている。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Web コンソールの Administrator パースペクティブで、Operators Installed Operators の順にクリックします。

    • Project リストで、ユーザー定義の Argo CD インスタンスをインストールするプロジェクトを作成または選択します。
  3. インストールされている Operators リストから Red Hat OpenShift GitOps を選択し、Argo CD タブをクリックします。
  4. 2 つの Argo CD インスタンスを作成するには、Create ArgoCD をクリックし、次の例のような 2 つの YAML ファイルを作成します。

    アノテーションラベルを持つ最初の Argo CD インスタンスの例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: argocd-instance-demo-1 
    1
    
      namespace: argocd-test-demo-1 
    2
    
    spec:
      installationID: "instance-demo-1" 
    3
    
      resourceTrackingMethod: "annotation+label"
    Copy to Clipboard Toggle word wrap

    1
    最初の Argo CD インスタンスの名前を指定します。
    2
    最初の Argo CD インスタンスに使用される namespace を指定します。
    3
    最初の Argo CD インスタンスの installationID オブジェクトの名前を指定します。

    アノテーションラベルを持つ 2 番目の Argo CD インスタンスの例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: argocd-instance-demo-2 
    1
    
      namespace: argocd-test-demo-2 
    2
    
    spec:
      installationID: "instance-demo-2" 
    3
    
      resourceTrackingMethod: "annotation+label"
    Copy to Clipboard Toggle word wrap

    1
    2 番目の Argo CD インスタンスの名前を指定します。
    2
    2 番目の Argo CD インスタンスに使用される namespace を指定します。
    3
    2 番目の Argo CD インスタンスの installationID オブジェクトの名前を指定します。
  5. namespace を Argo CD インスタンスに関連付けるようにターゲット namespace を設定し、ラベル付けします。

    1. Administration Namespaces に移動します。
    2. アプリケーションデプロイメントの namespace app-ns-1app-ns-2 を作成します。
    3. 各 namespace をそれぞれの Argo CD インスタンスに関連付けます。

      1. 次のコマンドを実行して、app-ns-1 namespace を argocd-test-demo-1 Argo CD インスタンスに関連付けます。

        コマンドの例

        $ oc label namespace app-ns-1 argocd.argoproj.io/managed-by=argocd-test-demo-1
        Copy to Clipboard Toggle word wrap

      2. 次のコマンドを実行して、app-ns-2 namespace を argocd-test-demo-2 Argo CD インスタンスに関連付けます。

        コマンドの例

        $ oc label namespace app-ns-2 argocd.argoproj.io/managed-by=argocd-test-demo-2
        Copy to Clipboard Toggle word wrap

  6. Argo CD に 2 つのアプリケーションを作成します。

    1. OpenShift Container Platform Web コンソールで、Operator Installed Operator OpenShift GitOps Operator に移動します。
    2. Argo CD を選択し、Applications タブに移動します。
    3. Create Application をクリックします。
    4. 次の YAML スニペットを入力して、Argo CD に 2 つのアプリケーションを作成します。

      Argo CD を使用した最初のアプリケーションの例

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
        name: sprint-petclinic 
      1
      
        namespace: argocd-test-demo-1 
      2
      
      spec:
        project: default
        source:
          repoURL: https://github.com/redhat-developer/gitops-operator
          path: test/examples/nginx
          targetRevision: HEAD
        destination:
          server: https://kubernetes.default.svc
          namespace: app-ns-1
        syncPolicy:
          automated: {}
      Copy to Clipboard Toggle word wrap

      1
      最初のアプリケーションの名前を指定します。
      2
      最初のアプリケーションに使用される namespace を指定します。

      Argo CD を使用した 2 番目のアプリケーションの例

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
        name: sprint-petclinic 
      1
      
        namespace: argocd-test-demo-2 
      2
      
      spec:
        project: default
        source:
          repoURL: https://github.com/redhat-developer/gitops-operator
          path: test/examples/nginx
          targetRevision: HEAD
        destination:
          server: https://kubernetes.default.svc
          namespace: app-ns-2
        syncPolicy:
          automated: {}
      Copy to Clipboard Toggle word wrap

      1
      Argo CD 上で、最初のアプリケーションと同じ名前を持つ 2 番目のアプリケーションを識別するための名前を指定します。
      2
      2 番目のアプリケーションに使用する namespace を指定します。

検証

  1. OpenShift Container Platform Web コンソールで Workloads Pods に移動します。
  2. Argo CD インスタンス argocd-instance-demo-1 および argocd-instance-demo-2 の Pod が実行されていることを確認します。
  3. Argo CD Applications YAML タブでアプリケーションの同期ステータスを確認します。
  4. argocd-test-demo-1 および argocd-test-demo-2 namespace の argocd-cm config map に移動し、installationID オブジェクトが正常に設定されていることを確認します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat