3.4. 集約されたクラスターロールの作成を有効にする


クラスタースコープの Argo CD インスタンスの Argo CD Application Controller コンポーネントの集約されたクラスターロールの作成を有効にするには、Argo CD カスタムリソース (CR) の YAML ファイルを編集して、対応するフィールドを設定する必要があります。

手順

  1. Argo CD CR で、.spec.aggregatedClusterRoles フィールドの値を true に設定します。

    Argo CD CR の例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: example 
    1
    
      namespace: spring-petclinic 
    2
    
    # ...
    spec:
      aggregatedClusterRoles: true 
    3
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    クラスタースコープのインスタンスの名前。
    2
    クラスタースコープのインスタンスを実行する namespace。
    3
    値を true に設定すると、集約されたクラスターロールの作成が有効になります。集約されたクラスターロールの作成を有効にしない場合は、この行を含めないか、値を false に設定します。

    出力例

    argocd.argoproj.io/example configured
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを実行して、クラスタースコープの Argo CD インスタンスの Status フィールドに Phase: Available と表示されていることを確認します。

    $ oc describe argocd.argoproj.io/example -n spring-petclinic
    Copy to Clipboard Toggle word wrap

    出力例

    Name:         example
    Namespace:    spring-petclinic
    Labels:       <none>
    Annotations:  <none>
    API Version:  argoproj.io/v1beta1
    Kind:         ArgoCD
    Metadata:
      Creation Timestamp:  2024-08-14T08:20:53Z
      Finalizers:
        argoproj.io/finalizer
      Generation:        3
      Resource Version:  60437
      UID:               57940e54-d60b-4c1a-bc4a-85c81c63ab69
    Spec:
      Aggregated Cluster Roles:  true
    ...
    Status:
      Application Controller:      Running
      Application Set Controller:  Unknown
      Phase:                       Available 
    1
    
      Redis:                       Running
      Repo:                        Running
      Server:                      Running
      Sso:                         Unknown
    Events:                        <none>
    Copy to Clipboard Toggle word wrap

    1
    Available ステータスは、クラスタースコープの Argo CD インスタンスが正常で使用可能であることを示します。
    注記

    Red Hat OpenShift GitOps Operator は、次のデフォルトのクラスターロールを作成し、管理します。

    • <argocd_name>-<argocd_namespace>-argocd-application-controller 集約クラスターロール
    • <argocd_name>-<argocd_namespace>-argocd-application-controller-view
    • <argocd_name>-<argocd_namespace>-argocd-application-controller-admin
  3. 次のコマンドを実行して、Operator が Argo CD Application Controller と Argo CD サーバーコンポーネントのデフォルトのクラスターロールとクラスターロールバインディングを作成したことを確認します。

    $ oc get ClusterRoles -l app.kubernetes.io/part-of=argocd
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                                           CREATED AT
    example-spring-petclinic-argocd-application-controller         2024-08-14T08:20:58Z
    example-spring-petclinic-argocd-application-controller-admin   2024-08-14T09:08:38Z
    example-spring-petclinic-argocd-application-controller-view    2024-08-14T09:08:38Z
    example-spring-petclinic-argocd-server                         2024-08-14T08:20:59Z
    Copy to Clipboard Toggle word wrap

    $ oc get ClusterRoleBindings -l app.kubernetes.io/part-of=argocd
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                                     ROLE                                                                 AGE
    example-spring-petclinic-argocd-application-controller   ClusterRole/example-spring-petclinic-argocd-application-controller   54m
    example-spring-petclinic-argocd-server                   ClusterRole/example-spring-petclinic-argocd-server                   54m
    Copy to Clipboard Toggle word wrap

    view および admin クラスターロールのクラスターロールバインディングは作成されません。これは、view および admin クラスターロールは集約されたクラスターロールに権限を追加するだけで、Argo CD Application Controller への権限を直接設定しないためです。

    ヒント

    または、OpenShift Container Platform Web コンソールを使用して、Administrator パースペクティブから確認することもできます。User Management Roles および User Management RoleBindings に移動します。app.kubernetes.io/part-of:argocd ラベルの付いたクラスターロールとクラスターロールバインディングを検索できます。

  4. 次のコマンドを実行して、作成されたロールの出力の権限をチェックして、集約されたクラスターロールが作成されたことを確認します。

    $ oc get ClusterRole/<cluster_role_name> -o yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    <cluster_role_name> は、作成したロールの名前に置き換えます。

    集約されたクラスターロールの出力例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      annotations:
        argocds.argoproj.io/name: example
        argocds.argoproj.io/namespace: spring-petclinic
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}}
        rbac.authorization.kubernetes.io/autoupdate: "true"
      creationTimestamp: "2024-08-14T08:20:58Z"
      labels:
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
      name: example-spring-petclinic-argocd-application-controller 
    1
    
      resourceVersion: "78640"
      uid: aeeb2ef5-b531-4fe3-a61a-b5ad8dd8ca6e
    aggregationRule: 
    2
    
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-controller: "true"
    rules: [] 
    3
    Copy to Clipboard Toggle word wrap

    1
    集約されたクラスターロールの名前。
    2
    定義済みのラベルのリストは、集約されたクラスターロールが他のユーザー定義のクラスターロールから権限を継承できることを示します。
    3
    事前定義された権限は設定されません。ただし、Operator が <argocd_name>-<argocd_namespace>-argocd-application-controller-view クラスターロールをすぐに作成すると、対応する定義済み view 権限が集約されたクラスターロールに追加されます。

    view クラスターロールの出力例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      annotations:
        argocds.argoproj.io/name: example
        argocds.argoproj.io/namespace: spring-petclinic
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}}
      creationTimestamp: "2024-08-14T09:59:14Z"
      labels: 
    1
    
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
        argocd/aggregate-to-controller: "true"
      name: example-spring-petclinic-argocd-application-controller-view 
    2
    
      resourceVersion: "78639"
      uid: 068b8867-7a0c-4af3-a17a-0560a00eba41
    rules: 
    3
    
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - get
      - list
      - watch
    - nonResourceURLs:
      - '*'
      verbs:
      - get
      - list
    Copy to Clipboard Toggle word wrap

    1
    ラベルは、既存の集約されたクラスターロールの定義済みリストと一致します。
    2
    view クラスターロールの名前。
    3
    事前定義された view 権限。これらの権限は、既存の集約されたクラスターロールに追加されます。

    admin クラスターロールの出力例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      annotations:
        argocds.argoproj.io/name: example
        argocds.argoproj.io/namespace: spring-petclinic
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}}
        rbac.authorization.kubernetes.io/autoupdate: "true"
      creationTimestamp: "2024-08-14T09:59:15Z"
      labels: 
    1
    
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
        argocd/aggregate-to-controller: "true"
      name: example-spring-petclinic-argocd-application-controller-admin 
    2
    
      resourceVersion: "78642"
      uid: e2d35b6f-0832-4993-8b24-915a725454f9
    aggregationRule: 
    3
    
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-admin: "true"
    rules: null 
    4
    Copy to Clipboard Toggle word wrap

    1
    ラベルは、既存の集約されたクラスターロールの定義済みリストと一致します。
    2
    admin クラスターロールの名前。
    3
    定義済みのラベルリストは、既存の <argocd_name>-<argocd_namespace>-argocd-application-controller-admin クラスターロールが他のユーザー定義のクラスターロールから権限を継承できることを示しています。
    4
    1 つ以上のユーザー定義のクラスターロールにまだ権限が定義されていないことを指定します。
    ヒント

    または、OpenShift Container Platform Web コンソールを使用して、Administrator パースペクティブから確認することもできます。User Management Roles に移動し、Filter オプションを使用して Cluster-wide Roles を選択し、集約されたクラスターロール、view、および admin クラスターロールを検索できます。詳細と設定を確認するには、クラスターロールを作成する必要があります。

    クラスター管理者は、1 つ以上のユーザー定義のクラスターロールを作成し、Argo CD Application Controller のユーザー定義のアクセス許可を設定できるようになりました。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat