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>.yamlCopy 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 createdCopy 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 yamlCopy 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 yamlCopy 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 を選択し、集約されたクラスターロールを検索できます。詳細と設定を確認するには、クラスターロールを作成する必要があります。