1.2. 通过为命名空间范围的实例指定用户定义的集群角色来配置常见集群角色


作为集群管理员,当您使用 argocd.argoproj.io/managed-by 标签为命名空间提供 Argo CD 访问权限时,Argo CD 会假定 namespace-admin 权限。然后,Red Hat OpenShift GitOps Operator 会自动为以下 GitOps control plane 组件的所有受管命名空间创建角色绑定:

  • Argo CD Application Controller
  • Argo CD 服务器
  • Argo CD ApplicationSet Controller

当您向非管理员用户提供命名空间时,如开发团队,他们可以使用 namespace-admin 特权来修改网络策略等对象。在这些命名空间中安装 Argo CD 实例可让开发团队具有 admin 权限,并间接提升其分配的权限。这些角色具有高度特权,可以删除所有资源。作为防止操作,您可以通过为 Operator 为 Argo CD Application Controller 和 Argo CD 服务器组件创建的所有受管命名空间配置通用集群角色来定义一组特定权限来满足您的安全要求。

要为所有受管命名空间配置通用集群角色,您可以在 Operator 的 Subscription 对象 YAML 文件中为 CONTROLLER_CLUSTER_ROLESERVER_CLUSTER_ROLE 环境变量指定用户定义的集群角色。因此,Operator 会使用现有的用户定义的集群角色,并为所有受管命名空间创建角色绑定,而不是创建默认的 admin 角色。

先决条件

  • 以管理员身份登录到 OpenShift Container Platform 集群。
  • 您已在 OpenShift Container Platform 集群上安装了 Red Hat OpenShift GitOps Operator。

流程

  1. Administrator 视角中,进入到 Administration CustomResourceDefinitions
  2. 找到 Subscription CRD 并点它打开它。
  3. 选择 Instances 选项卡,然后点 openshift-gitops-operator 订阅。
  4. 选择 YAML 选项卡并进行自定义:

    • CONTROLLER_CLUSTER_ROLESERVER_CLUSTER_ROLE 环境变量指定用户定义的集群角色:

      订阅示例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: openshift-gitops-operator
        namespace: openshift-gitops-operator
      spec:
        config:
          env:
          - name: CONTROLLER_CLUSTER_ROLE
            value: gitops-controller-role 1
          - name: SERVER_CLUSTER_ROLE
            value: gitops-server-role 2

      1
      Argo CD Application Controller 组件的环境变量名称。
      2
      Argo CD 服务器组件的环境变量名称。
提示

另外,您可以直接将前面的环境变量注入 Operator 的 Deployment 对象 YAML 文件中。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.