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 功能。

流程

  1. 创建一个 YAML 对象文件,如 argo-cd-resource.yaml,以配置 respectRBAC 功能:

    创建 respectRBACArgoCD YAML 示例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: example-argocd 1
    spec:
      controller:
        respectRBAC: strict 2

    1
    指定 Argo CD 实例的名称。
    2
    您可以将 ArgoCD 资源中的 .spec.controller.respectRBAC 键的值指定为 normalstrict。考虑 以正常方式 设置值来平衡准确性和速度,因为资源列表是一个轻量级操作。如果 Argo CD 报告错误,则将该值设为 strict,表示当您将值设为 正常的 时,它无法访问资源。设置 严格 增加对服务器的 API 调用数量,与正常相比,与 正常 相比,设置更为准确,因为 Argo CD 执行 RBAC 资源的额外验证来确定权限。
  2. 运行以下命令,将更改应用到 YAML 文件。

    $ oc apply -f argocd-resource.yaml -n argo-cd-instance 1
    1
    指定包含 ArgoCD 资源的 YAML 文件的名称和托管 ArgoCD 的命名空间。
  3. 运行以下命令,验证 .status.phase 字段的状态是否为 Available

    $ oc get argocd <argocd_instance_name> -n <argocd_namespace> -o jsonpath='{.status.phase}' 1
    1
    <argocd_instance_name > 替换为 Argo CD 实例的名称,如 example-argocd
  4. 验证 ConfigMap 资源中的 resource.respectRBAC 参数是否已成功更新:

    1. 要检索 argocd-cm 配置映射的内容,请运行以下命令:

      $ oc get cm argocd-cm -n <argocd_namespace> -o yaml
    2. 验证 argocd-cm ConfigMap 是否包含 resource.respectRBAC 参数,并确保其值设置为 strictnormal

1.15.2. 使用 Web 控制台配置 respectRBAC

您可以在 web 控制台中配置 respectRBAC

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 在 Web 控制台的 Administrator 视角中,点 Operators Installed Operators
  3. Project 列表创建或选择您要安装用户定义的 Argo CD 实例的项目。
  4. 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,然后点击 Argo CD 选项卡。
  5. Argo CD 选项卡中配置 respectRBAC 参数。

    spec:
      controller:
        respectRBAC: strict
  6. Create

    成功安装后,验证 Argo CD 实例是否在 Argo CD 选项卡下列出,StatusAvailable

  7. 创建 Argo CD 实例后,通过完成以下步骤验证 ConfigMap 资源中的 resource.respectRBAC 参数是否已成功更新。

    1. Administrator 视角中,进入 Workload ConfigMaps
    2. Project 选项中,选择 Argo CD 命名空间。
    3. 选择 argocd-cm 配置映射。
    4. 选择 YAML 选项卡来查看 resource.respectRBAC 参数。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.