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 クラスターにインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators の順にクリックします。 - Project リストで、ユーザー定義の Argo CD インスタンスをインストールするプロジェクトを作成または選択します。
- インストールされている Operators リストから Red Hat OpenShift GitOps を選択し、Argo CD タブをクリックします。
2 つの Argo CD インスタンスを作成するには、Create ArgoCD をクリックし、次の例のような 2 つの YAML ファイルを作成します。
アノテーションラベルを持つ最初の Argo CD インスタンスの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーションラベルを持つ 2 番目の Argo CD インスタンスの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace を Argo CD インスタンスに関連付けるようにターゲット namespace を設定し、ラベル付けします。
-
Administration
Namespaces に移動します。 -
アプリケーションデプロイメントの namespace
app-ns-1
とapp-ns-2
を作成します。 各 namespace をそれぞれの Argo CD インスタンスに関連付けます。
次のコマンドを実行して、
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
$ oc label namespace app-ns-1 argocd.argoproj.io/managed-by=argocd-test-demo-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
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
$ oc label namespace app-ns-2 argocd.argoproj.io/managed-by=argocd-test-demo-2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Administration
Argo CD に 2 つのアプリケーションを作成します。
-
OpenShift Container Platform Web コンソールで、Operator
Installed Operator OpenShift GitOps Operator に移動します。 - Argo CD を選択し、Applications タブに移動します。
- Create Application をクリックします。
次の YAML スニペットを入力して、Argo CD に 2 つのアプリケーションを作成します。
Argo CD を使用した最初のアプリケーションの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Argo CD を使用した 2 番目のアプリケーションの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift Container Platform Web コンソールで、Operator
検証
-
OpenShift Container Platform Web コンソールで Workloads
Pods に移動します。 -
Argo CD インスタンス
argocd-instance-demo-1
およびargocd-instance-demo-2
の Pod が実行されていることを確認します。 - Argo CD Applications YAML タブでアプリケーションの同期ステータスを確認します。
-
argocd-test-demo-1
およびargocd-test-demo-2
namespace のargocd-cm
config map に移動し、installationID
オブジェクトが正常に設定されていることを確認します。