3.2. 使用目标命名空间配置用户定义的集群范围的 Argo CD 实例的 Argo CD CR


作为集群管理员,您可以定义一组特定的非 control plane 命名空间,用户可以在其中创建、更新和协调 应用程序资源。您必须首先根据您的要求在用户定义的集群范围 Argo CD 实例的 ArgoCD 自定义资源(CR)中明确配置目标命名空间。

先决条件

  • 以管理员身份登陆到 OpenShift Container Platform 集群。
  • 您已在 OpenShift Container Platform 集群上安装 Red Hat OpenShift GitOps 1.13.0 或更高版本。
  • 在定义的命名空间中有一个用户定义的集群范围的 Argo CD 实例,如 spring-petclinic 命名空间。

流程

  1. 在 Web 控制台的 Administrator 视角中,点 Operators Installed Operators
  2. Project 列表中,选择安装用户定义的集群范围的 Argo CD 实例的项目。
  3. 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,再进入 Argo CD 选项卡。
  4. 点用户定义的集群范围的 Argo CD 实例。
  5. 使用目标命名空间配置用户定义的集群范围的 Argo CD 实例的 ArgoCD CR:

    1. YAML 选项卡,并编辑 ArgoCD CR 的 YAML 文件。
    2. ArgoCD CR 中,将 sourceNamespaces 参数的值设置为包含非 control plane 命名空间:

      ArgoCD CR 示例

      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
        name: example 1
        namespace: spring-petclinic 2
      spec:
        sourceNamespaces: 3
          - dev 4
          - app-team-* 5

      1
      用户定义的集群范围的 Argo CD 实例的名称。
      2
      要运行用户定义的集群范围的 Argo CD 实例的命名空间。
      3
      用于创建和管理应用程序资源的非 control plane 命名空间列表。
      4
      Argo CD 服务器的目标命名空间名称,用于 创建和管理应用程序资源
      5
      使用通配符(*),指定与模式 app-team suit 匹配的目标命名空间的名称,如 app-team-1app-team-2,用于 Argo CD 服务器来创建和管理应用程序资源。
    3. 单击 Save and Reload

      注意

      当在 sourceNamespaces 字段中指定目标命名空间时,Operator 会将 argocd.argoproj.io/managed-by-cluster-argocd 标签添加到指定的命名空间中。

      dev 目标命名空间示例

      apiVersion: v1
      kind: Namespace
      metadata:
        name: dev
        labels:
          argocd.argoproj.io/managed-by-cluster-argocd: spring-petclinic 1
          kubernetes.io/metadata.name: dev 2

      1
      用户定义的集群范围的 Argo CD 实例的命名空间。
      2
      Argo CD 服务器的目标命名空间,用于 创建和管理应用程序资源
  6. 验证 Operator 是否将 argocd.argoproj.io/managed-by-cluster-argocd 标签添加到指定命名空间中:

    1. 进入 Administration Namespaces,再点击 Create Namespace
    2. Create Namespace 对话框中,提供 Name 并点 Create

      例如,若要创建 dev 目标命名空间,请在 Name 字段中输入 dev。您可以重复前面的步骤来创建 app-team-1app-team-2 目标命名空间。

      Namespaces 页面显示创建的目标命名空间。

    3. 点目标命名空间并进入 YAML 选项卡,以验证 Operator 添加的 argocd.argoproj.io/managed-by-cluster-argocd 标签。
  7. 验证您的用户定义的集群范围的 Argo CD 实例是否已配置有集群角色来管理集群范围的资源:

    1. 进入 User Management Roles,然后从 Filter 列表中选择 Cluster-wide Roles
    2. 使用 Search by name 字段搜索创建的集群角色。例如,example-spring-petclinic-argocd-application-controllerexample-spring-petclinic-argocd-server

      Roles 页面显示创建的集群角色。

    3. 验证 GitOps Operator 创建了以下基于角色的访问控制(RBAC)资源:

      NameKind用途

      <argocd_name>-<argocd_namespace>-argocd-application-controller

      ClusterRoleClusterRoleBinding

      对于 Argo CD Application Controller,在集群级别监视和列出应用程序资源

      <argocd_name>-<argocd_namespace>-argocd-server

      ClusterRoleClusterRoleBinding

      对于 Argo CD 服务器,在集群级别监视和列出 应用程序资源

      <argocd_name>-<target_namespace>

      RoleRoleBinding

      要让 Argo CD 服务器通过 UI、API 或 CLI 管理目标命名空间中的 应用程序资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.