第2章 クラスタースコープのインスタンスのユーザー定義のクラスターロールを作成して権限をカスタマイズする


デフォルトのクラスタースコープのインスタンスの場合、Red Hat OpenShift GitOps Operator は特定のクラスタースコープのリソース管理向けの権限を追加で付与します。したがって、クラスター管理者として Argo CD をクラスタースコープのインスタンスとしてデプロイすると、Operator は GitOps コントロールプレーンコンポーネント用の追加のクラスターロールとクラスターロールバインディングを作成します。これらのクラスターロールとクラスターロールバインディングは、Argo CD がクラスターレベルで動作させるのに必要な追加の権限を提供します。

クラスタースコープのインスタンスに Operator によって付与されたすべての権限を付与せず、クラスター全体のリソースへの権限を追加または削除する場合は、まずクラスタースコープのインスタンスのデフォルトのクラスターロールの作成を無効にする必要があります。次に、次のクラスタースコープのインスタンスの権限をカスタマイズできます。

  • デフォルトの Argo CD インスタンス (デフォルトのクラスタースコープインスタンス)
  • ユーザー定義のクラスタースコープ Argo CD インスタンス

このガイドでは、ユーザー定義のクラスタースコープの Argo CD インスタンスを作成し、クラスター用のカスタム設定を含む Argo CD アプリケーションを定義済みの名前空間にデプロイするための手順と例を示します。GitOps コントロールプレーンコンポーネント用に新しいクラスターロールとクラスターロールバインディングを作成することで、クラスタースコープインスタンスのデフォルトのクラスターロールの作成を無効にし、ユーザー定義のクラスタースコープインスタンスの権限をカスタマイズする方法を学びます。

注記

開発者として、Argo CD アプリケーションを作成し、クラスター全体のリソースをデプロイする場合は、クラスター管理者が必要な権限を付与していることを確認してください。

それ以外の場合は、Argo CD の調整後に、アプリケーションの Status フィールドに次の例のような認証エラーメッセージが表示されます。

認証エラーメッセージの例:

persistentvolumes is forbidden: User "system:serviceaccount:gitops-demo:argocd-argocd-application-controller" cannot create resource "persistentvolumes" in API group "" at the cluster scope.

2.1. 前提条件

  • OpenShift Container Platform クラスターに Red Hat OpenShift GitOps 1.13.0 以降のバージョンがインストールされている。
  • OpenShift CLI (oc) がインストールされている。
  • Red Hat OpenShift GitOps argocd CLI がインストールされている。
  • 定義した名前空間 (たとえば、spring-petclinic 名前空間) に、クラスタースコープの Argo CD インスタンスを インストールしました。
  • ユーザー定義のクラスタースコープインスタンスが、次のコンポーネントのクラスターロールとクラスターロールバインディングを使用して設定されていることを検証している。

    • Argo CD Application Controller
    • Argo CD サーバー
    • Argo CD ApplicationSet Controller (ApplicationSet Controller 作成される)
  • spring-petclinic namespace の customclusterrole パス を使用して cluster-configs Argo CD アプリケーション をデプロイし、test-gitops-ns namespace と test-gitops-pv 永続ボリュームリソースを作成している。

    注記

    cluster-configs Argo CD アプリケーションは、次のパラメーターが設定されたユーザー定義のクラスタースコープインスタンスによって管理される必要があります。

    • selfHeal フィールドの値が true に設定されている
    • syncPolicy フィールドの値が automated に設定されている
    • Label フィールドが app.kubernetes.io/part-of=argocd の値に設定されている
    • 定義した namespace 内の Argo CD インスタンスが namespace を管理できるように、Label フィールドが argocd.argoproj.io/managed-by=<user_defined_namespace> 値に設定されている
    • ラベル フィールドが app.kubernetes.io/name=<user_defined_argocd_instance> 値に設定されている
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る