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


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

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

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

このガイドでは、ユーザー定義のクラスタースコープ Argo CD インスタンスを作成し、クラスターのカスタム設定を含む定義済みの namespace に 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 がインストールされている。
  • クラスタースコープの Argo CD インスタンス を定義済みの namespace にインストールしている。(例: spring-petclinic namespace)。
  • ユーザー定義のクラスタースコープインスタンスが、次のコンポーネントのクラスターロールとクラスターロールバインディングを使用して設定されていることを検証している。

    • 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 をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.