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
      namespace: spring-petclinic
    # ...
    spec:
      aggregatedClusterRoles: true
    # ...

    各項目の説明:

    metadata.name
    クラスタースコープのインスタンスの名前を指定します。
    metadata.namespace
    Argo CD がインストールされている namespace を指定します。
    spec.aggregatedClusterRoles
    集約されたクラスターロールの作成を有効にするために、クラスターロールの値を指定します。集約されたクラスターロールの作成を有効にしない場合は、この行を含めないか、値を false に設定します。

    出力例:

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

    $ oc describe argocd.argoproj.io/example -n spring-petclinic

    出力例:

    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
      Redis:                       Running
      Repo:                        Running
      Server:                      Running
      Sso:                         Unknown
    Events:                        <none>

    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

    出力例:

    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
    $ oc get ClusterRoleBindings -l app.kubernetes.io/part-of=argocd

    出力例:

    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

    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

    各項目の説明:

    <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
      resourceVersion: "78640"
      uid: aeeb2ef5-b531-4fe3-a61a-b5ad8dd8ca6e
    aggregationRule:
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-controller: "true"
    rules: []

    各項目の説明:

    metadata.name
    集約されたクラスターロールの名前を指定します。
    aggregationRule.clusterRoleSelectors
    定義済みのラベルリストを指定します。これは、集約されたクラスターロールが、他のユーザー定義クラスターロールから権限を継承できることを示しています。
    rules
    事前定義済みの権限を指定します。ただし、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:
        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
      resourceVersion: "78639"
      uid: 068b8867-7a0c-4af3-a17a-0560a00eba41
    rules:
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - get
      - list
      - watch
    - nonResourceURLs:
      - '*'
      verbs:
      - get
      - list

    各項目の説明:

    metadata.labels
    既存の集約されたクラスターロールの事前定義済みリストに一致するラベルを定義します。
    metadata.name
    view クラスターロールの名前を指定します。
    rules
    事前定義済みの 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:
        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
      resourceVersion: "78642"
      uid: e2d35b6f-0832-4993-8b24-915a725454f9
    aggregationRule:
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-admin: "true"
    rules: null

    各項目の説明:

    metadata.labels
    既存の集約されたクラスターロールの事前定義済みリストに一致するラベルを指定します。
    metadata.name
    admin クラスターロールの名前を指定します。
    aggregationRule.clusterRoleSelectors
    定義済みのラベルリストを指定します。これは、既存の <argocd_name>-<argocd_namespace>-argocd-application-controller-admin クラスターロールが、他のユーザー定義クラスターロールから権限を継承できることを示しています。
    rules
    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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る