3.2. ターゲット namespace を使用したユーザー定義のクラスタースコープ Argo CD インスタンスの Argo CD CR 設定
クラスター管理者は、ユーザーが Application
リソースを作成、更新、および調整できる特定のコントロールプレーン以外の namespace のセットを定義できます。まず、要件に応じて、ユーザー定義のクラスタースコープ Argo CD インスタンスの ArgoCD
カスタムリソース (CR) でターゲット namespace を明示的に設定する必要があります。
前提条件
- 管理者として OpenShift Container Platform クラスターにログインしている。
- OpenShift Container Platform クラスターに Red Hat OpenShift GitOps 1.13.0 以降のバージョンがインストールされている。
-
定義済みの namespace (例:
spring-petclinic
namespace) に、ユーザー定義のクラスタースコープ Argo CD インスタンスがある。
手順
-
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators の順にクリックします。 - Project リストから、ユーザー定義のクラスタースコープ Argo CD インスタンスがインストールされているプロジェクトを選択します。
- インストールされた Operator のリストから Red Hat OpenShift GitOps を選択し、Argo CD タブに移動します。
- ユーザー定義のクラスタースコープ Argo CD インスタンスをクリックします。
ターゲット namespace を使用して、ユーザー定義のクラスタースコープ Argo CD インスタンスの
ArgoCD
CR を設定します。-
YAML タブをクリックし、
ArgoCD
CR の YAML ファイルを編集します。 ArgoCD
CR で、sourceNamespaces
パラメーターの値を設定して、コントロールプレーン以外の namespace を含めます。ArgoCD
CR の例apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: example 1 namespace: spring-petclinic 2 spec: sourceNamespaces: 3 - dev 4 - app-team-* 5
- 1
- ユーザー定義のクラスタースコープの Argo CD インスタンスの名前。
- 2
- ユーザー定義のクラスタースコープの Argo CD インスタンスを実行する namespace。
- 3
Application
リソースを作成および管理するための非コントロールプレーン namespace のリスト。- 4
Application
リソースを作成および管理するための Argo CD サーバーのターゲット namespace の名前。- 5
- ワイルドカード (
*
) を使用して、Argo CD サーバーがApplication
リソースを作成および管理するためのパターンapp-team-*
(app-team-1
やapp-team-2
など) に一致するターゲット namespace の名前を指定します。
Save、Reload を順にクリックします。
注記sourceNamespaces
フィールドでターゲット namespace が指定されると、Operator は指定された namespace にargocd.argoproj.io/managed-by-cluster-argocd
ラベルを追加します。dev
ターゲット namespace の例apiVersion: v1 kind: Namespace metadata: name: dev labels: argocd.argoproj.io/managed-by-cluster-argocd: spring-petclinic 1 kubernetes.io/metadata.name: dev 2
-
YAML タブをクリックし、
Operator が
argocd.argoproj.io/managed-by-cluster-argocd
ラベルを指定の namespace に追加することを確認します。-
Administration
Namespaces に移動し、Create Namespace をクリックします。 Create Namespace ダイアログボックスで Name を入力し、Create をクリックします。
たとえば、
dev
ターゲット namespace を作成するには、Name フィールドにdev
を入力します。前の手順を繰り返して、app-team-1
およびapp-team-2
ターゲット namespace を作成できます。Namespaces ページには、作成されたターゲット namespace が表示されます。
-
ターゲット namespace をクリックし、YAML タブに移動して、Operator によって追加された
argocd.argoproj.io/managed-by-cluster-argocd
ラベルを確認します。
-
Administration
ユーザー定義のクラスタースコープ Argo CD インスタンスが、クラスタースコープのリソースを管理するためのクラスターロールで設定されていることを確認します。
-
User Management
Roles に移動し、Filter リストから Cluster-wide Roles を選択します。 Search by name フィールドを使用して、作成したクラスターロールを検索します。たとえば、
example-spring-petclinic-argocd-application-controller
とexample-spring-petclinic-argocd-server
です。Roles ページには、作成されたクラスターロールが表示されます。
GitOps Operator によって次のロールベースアクセス制御 (RBAC) リソースが作成されていることを確認します。
名前 種類 目的 <argocd_name>-<argocd_namespace>-argocd-application-controller
ClusterRole
およびClusterRoleBinding
Argo CD アプリケーションコントローラーがクラスターレベルで
Application
リソースを監視してリスト表示するため<argocd_name>-<argocd_namespace>-argocd-server
ClusterRole
およびClusterRoleBinding
Argo CD サーバーがクラスターレベルで
アプリケーション
リソースを監視し、リスト表示するため<argocd_name>-<target_namespace>
Role
およびRoleBinding
Argo CD サーバーが UI、API、または CLI を介してターゲット namespace 内の
Application
リソースを管理するため
-
User Management