Argo CD アプリケーションセット
コントロールプレーン以外の namespace でのアプリケーションセットリソースの管理
概要
第1章 コントロールプレーン以外の namespace でのアプリケーションセットリソースの管理 リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーン以外の namespace の Argo CD アプリケーションセットは、テクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
アプリケーションセットを使用すると、単一のモノリポジトリーから複数のクラスターへの複数の Argo CD アプリケーションのデプロイメントを、より柔軟に、宣言的に自動化および管理できます。
Red Hat OpenShift GitOps 1.12 以降では、クラスター管理者は、要件に応じて ArgoCD および ApplicationSet カスタムリソース (CR) を明示的に有効化および設定することで、openshift-gitops コントロールプレーン namespace 以外の非コントロールプレーン namespace で ApplicationSet リソースを宣言的に作成および管理できます。この機能は、分離されたチーム向けに Argo CD アプリケーションのデプロイメントを管理するマルチテナント環境で特に役立ちます。この機能は、Argo CD オープンソースプロジェクトの 任意の namespace 機能の ApplicationSet と呼ばれます。
生成された Argo CD アプリケーションは、コントロールプレーン以外の任意の namespace にリソースを作成できます。ただし、アプリケーション自体は、アプリケーションセットリソースと同じ namespace に存在します。
1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
定義した namespace に、ユーザー定義の クラスタースコープ Argo CD インスタンス があります。たとえば、
spring-petclinicnamespace。 -
非コントロールプレーン namespace のアプリケーションリソースを管理するために、
ArgoCDCR でターゲット namespace を 明示的に有効化および設定 している。
1.2. コントロールプレーン以外の namespace でアプリケーションセットリソースの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、ユーザーが ApplicationSet リソースを作成、更新、調整できる、コントロールプレーン以外の namespace の特定のセットを定義できます。要件に応じて、ArgoCD および ApplicationSet カスタムリソース (CR) を明示的に有効化して設定する必要があります。
手順
コントロールプレーン以外の namespace を含めるには、
applicationSet仕様のsourceNamespacesパラメーターを設定します。Argo CD カスタムリソースの例
apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: example namespace: spring-petclinic spec: applicationSet: sourceNamespaces:1 - dev2 注記現時点では、
.spec.applicationSet.sourceNamespacesフィールドではワイルドカード (*) の使用はサポートされていません。次のロールベースのアクセス制御 (RBAC) リソースが GitOps Operator により作成または変更されていることを確認します。
Expand 名前 種類 目的 <argocd_name>-<argocd_namespace>-argocd-applicationset-controllerClusterRoleおよびClusterRoleBindingArgo CD ApplicationSet Controller がクラスターレベルで
ApplicationSetリソースを監視してリスト表示する<argocd_name>-<argocd_namespace>-applicationsetRoleおよびRoleBindingArgo CD ApplicationSet Controller がターゲット namespace の
ApplicationSetリソースを管理する<argocd_name>-<target_namespace>RoleおよびRoleBindingArgo CD サーバーが UI、API、または CLI を介してターゲット namespace の
ApplicationSetリソースを管理する注記Operator は、
argocd.argoproj.io/applicationset-managed-by-cluster-argocdラベルをターゲット namespace に追加します。
1.3. ソースコードマネージャープロバイダーの許可 リンクのコピーリンクがクリップボードにコピーされました!
このセクションを注意深くお読みください。誤った設定は潜在的なセキュリティー問題を引き起こす可能性があります。
コントロールプレーン以外の namespace で ApplicationSet リソースを許可すると、Source Code Manager (SCM) Provider または Pull Request (PR) ジェネレーターの悪意のある API エンドポイントを通じてシークレットが流出する可能性があります。機密情報への不正アクセスを防ぐため、Operator は予防措置として SCM プロバイダーと PR ジェネレーターをデフォルトで無効にします。
手順
SCM Provider と PR ジェネレーターを使用するには、許可される SCM Provider のリストを明示的に定義します。
Argo CD カスタムリソースの例
apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: example-argocd spec: applicationSet: sourceNamespaces: - dev scmProviders:1 - https://git.mydomain.com/ - https://gitlab.mydomain.com/- 1
- 許可された SCM Provider の URL のリスト。
許可された SCM Provider のリストにない URL を使用すると、Argo CD ApplicationSet コントローラーはそれを拒否します。