1.15. 使用 Red Hat OpenShift GitOps 配置 respectRBAC
Argo CD 中的 respectRBAC 功能控制 Argo CD 如何监视集群中的资源。默认情况下,Argo CD 会尝试查看集群范围内的所有 Kubernetes 资源(CRD)。使用 respectRBAC 功能,您可以限制 ArgoCD 控制器只使用控制器 RBAC 发现或同步特定资源,而无需手动配置资源排除。
要启用此功能,请在 Argo CD 资源中设置 .spec.controller.respectRBAC 键。设置此密钥后,控制器会自动停止监视它无法列出或访问的资源。例如,这可以防止 Argo CD 集群角色限制 Argo CD 监视 OpenShift 路由,否则会导致同步过程中出现错误,表示它无法监视资源。
您可以通过命令行界面(CLI)或 Web 控制台创建 Argo CD 实例来启用 相关的RBAC 功能。
先决条件
确保您在 Subscription 资源中创建或更新一个命名空间,以便 Subscription 可以托管集群范围的 Argo CD 实例。如需更多信息,请参阅"使用 Argo CD 实例来管理集群范围的资源"。
1.15.1. 使用 CLI 配置 respectRBAC 复制链接链接已复制到粘贴板!
您可以使用 CLI 配置 respectRBAC 功能。
流程
创建一个 YAML 对象文件,如
argo-cd-resource.yaml,以配置respectRBAC功能:创建
respectRBAC的ArgoCDYAML 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将更改应用到 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的命名空间。
运行以下命令,验证
.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-cm配置映射的内容,请运行以下命令: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 实例的项目。
- 从安装的 Operator 列表中选择 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 命名空间。
-
选择
argocd-cm配置映射。 -
选择 YAML 选项卡来查看
resource.respectRBAC参数。
-
在 Administrator 视角中,进入 Workload