3.5. ユーザー定義のクラスターロールを作成し、Application Controller のユーザー定義の権限を設定する
クラスター管理者が、集約されたクラスターロールにユーザー定義のアクセス許可を追加するには、1 つ以上のユーザー定義のクラスターロールを作成し、クラスタースコープの Argo CD インスタンスの Argo CD Application Controller コンポーネントに対してユーザー定義のアクセス権限を設定する必要があります。
前提条件
- クラスタースコープの Argo CD インスタンスの Argo CD Application Controller コンポーネントの集約されたクラスターロールの作成を有効にしている。
Red Hat OpenShift GitOps Operator によって作成および管理される次のデフォルトのクラスターロールがある。
-
<argocd_name>-<argocd_namespace>-argocd-application-controller
は、定義済みのaggregationRule
フィールドを持つ集約クラスターロールです。 -
事前定義された
view
権限を持つ<argocd_name>-<argocd_namespace>-argocd-application-controller-view
-
事前定義された権限のない
<argocd_name>-<argocd_namespace>-argocd-application-controller-admin
-
手順
次のコマンドを使用して、必要なラベルと権限を持つ新しいクラスターロールを作成します。
oc apply -n <namespace> -f <cluster_role_name>.yaml
$ oc apply -n <namespace> -f <cluster_role_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは
<namespace>
- 定義した namespace の名前を指定します。
<cluster_role_name>
定義済みのクラスターロール YAML ファイルの名前を指定します。
ユーザー定義のクラスターロール YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントまたは、Web コンソールを使用して、Administrator パースペクティブからユーザー定義のクラスターロールを作成することもできます。User Management
Roles Create Role にアクセスし、前述の YAML テンプレートを使用して権限を追加し、Create をクリックします。 出力例
clusterrole.rbac.authorization.k8s.io/user-application-controller created
clusterrole.rbac.authorization.k8s.io/user-application-controller created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー定義のクラスターロールが作成されます。
次のコマンドを実行して、
<argocd_name>-<argocd_namespace>-argocd-application-controller-admin
クラスターロールがユーザー定義のクラスターロールから権限を継承していることを確認します。oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller-admin -o yaml
$ oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller-admin -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは
<argocd_name>
- ユーザー定義のクラスタースコープ Argo CD インスタンスの名前を指定します。
<argocd_namespace>
Argo CD がインストールされている namespace を指定します。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントまたは、OpenShift Container Platform Web コンソールを使用して、Administrator パースペクティブから確認することもできます。User Management
Roles に移動し、Filter オプションを使用して Cluster-wide Roles を選択し、 <argocd_name>-<argocd_namespace>-argocd-application-controller-admin
クラスターロールを検索します。詳細と設定を確認するには、クラスターロールを作成する必要があります。
次のコマンドを実行して、
<argocd_name>-<argocd_namespace>-argocd-application-controller
集約クラスターロールが<argocd_name>-<argocd_namespace>-argocd-application-controller-admin
および<argocd_name>-<argocd_namespace>-argocd-application-controller-view
クラスターロールから権限を継承していることを確認します。oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller -o yaml
$ oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは
<argocd_name>
- ユーザー定義のクラスタースコープ Argo CD インスタンスの名前を指定します。
<argocd_namespace>
Argo CD がインストールされている namespace を指定します。
集約されたクラスターロールの出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントまたは、OpenShift Container Platform Web コンソールを使用して、Administrator パースペクティブから確認することもできます。User Management
Roles に移動し、Filter オプションを使用して Cluster-wide Roles を選択し、集約されたクラスターロールを検索できます。詳細と設定を確認するには、クラスターロールを作成する必要があります。