1.15. Red Hat OpenShift GitOps を使用した respectRBAC の設定
Argo CD の respectRBAC 機能は、Argo CD がクラスター上のリソースを監視する方法を制御します。デフォルトでは、Argo CD はクラスタースコープでクラスター上のすべての Kubernetes リソース (CRD) を監視しようとします。respectRBAC 機能を使用すると、リソースの除外を手動で設定することなく、コントローラー RBAC のみを使用して ArgoCD コントローラーによる特定のリソースの検出や同期を制限できます。
この機能を有効にするには、Argo CD リソースで .spec.controller.respectRBAC キーを設定します。このキーを設定すると、コントローラーはリストまたはアクセスできないリソースの監視を自動的に停止します。たとえば、こうすることで、Argo CD クラスターロールにより、Argo CD が OpenShift Routes を監視できなくなるといった状況が回避されます。監視できなくなると、同期中にリソースの監視ができない旨のエラーが発生してしまいます。
コマンドラインインターフェイス (CLI) または Web コンソールを使用して Argo CD インスタンスを作成し、respectRBAC 機能を有効にできます。
前提条件
Subscription リソースで namespace を作成して更新していることを確認し、Subscription がクラスタースコープの Argo CD インスタンスをホストできるようにします。詳細は、「Argo CD インスタンスを使用してクラスタースコープのリソースの管理」を参照してください。
1.15.1. CLI を使用した respectRBAC の設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して respectRBAC 機能を設定できます。
手順
respectRBAC機能を設定するには、YAML オブジェクトファイル (例:argo-cd-resource.yaml) を作成します。respectRBACを作成するためのArgoCDYAML の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Argo CD インスタンスの名前を指定します。
- 2
ArgoCDリソースの.spec.controller.respectRBACキーの値をnormalまたはstrictとして指定できます。リソースの表示は軽量な操作であるため、精度と速度のバランスをとるために値をnormalに設定することを検討してください。値をnormalに設定したときに、Argo CD がリソースにアクセスできないことを示すエラーを報告する場合は、値をstrictに設定します。strictに設定すると、サーバーへの API 呼び出しの数が増え、Argo CD が RBAC リソースの追加検証を実行して権限を決定するため、normalよりも正確になります。
次のコマンドを実行して、YAML ファイルに変更を適用します。
oc apply -f argocd-resource.yaml -n argo-cd-instance
$ oc apply -f argocd-resource.yaml -n argo-cd-instance1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ArgoCDリソースを含む YAML ファイルの名前と、ArgoCDをホストする namespace を指定します。
次のコマンドを実行して、
.status.phaseフィールドのステータスがAvailableであることを確認します。oc get argocd <argocd_instance_name> -n <argocd_namespace> -o jsonpath='{.status.phase}'$ oc get argocd <argocd_instance_name> -n <argocd_namespace> -o jsonpath='{.status.phase}'1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<argocd_instance_name>は、Argo CD インスタンスの名前に置き換えます (例:example-argocd)。
ConfigMapリソースのresource.respectRBACパラメーターが正常に更新されていることを確認します。argocd-cmconfig map の内容を取得するには、次のコマンドを実行します。oc get cm argocd-cm -n <argocd_namespace> -o yaml
$ oc get cm argocd-cm -n <argocd_namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
argocd-cmConfigMapにresource.respectRBACパラメーターが含まれていることを確認し、その値がstrictまたはnormalに設定されていることを確認します。
1.15.2. Web コンソールを使用した respectRBAC の設定 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールで respectRBAC を設定できます。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators の順にクリックします。 - Project リストからユーザー定義の Argo CD インスタンスをインストールするプロジェクトを作成または選択します。
- インストールされている Operators リストから Red Hat OpenShift GitOps を選択し、Argo CD タブをクリックします。
Argo CD タブで
respectRBACパラメーターを設定します。spec: controller: respectRBAC: strictspec: controller: respectRBAC: strictCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create をクリックします。
インストールが正常に完了したら、Argo CD インスタンスが Argo CD タブに一覧表示され、Status が Available であることを確認します。
Argo CD インスタンスの作成後、次の手順を実行して、
ConfigMapリソースのresource.respectRBACパラメーターが正常に更新されていることを確認します。-
Administrator パースペクティブで、Workload
ConfigMaps に移動します。 - Project オプションで、Argo CD namespace を選択します。
-
argocd-cmconfig map を選択します。 -
YAML タブを選択して、
resource.respectRBACパラメーターを表示します。
-
Administrator パースペクティブで、Workload