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
命名空间。
流程
-
在 Web 控制台的 Administrator 视角中,点 Operators
Installed Operators。 - 从 Project 列表中,选择安装用户定义的集群范围的 Argo CD 实例的项目。
- 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,再进入 Argo CD 选项卡。
- 点用户定义的集群范围的 Argo CD 实例。
使用目标命名空间配置用户定义的集群范围的 Argo CD 实例的
ArgoCD
CR:-
点 YAML 选项卡,并编辑
ArgoCD
CR 的 YAML 文件。 在
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
单击 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
-
点 YAML 选项卡,并编辑
验证 Operator 是否将
argocd.argoproj.io/managed-by-cluster-argocd
标签添加到指定命名空间中:-
进入 Administration
Namespaces,再点击 Create Namespace。 在 Create Namespace 对话框中,提供 Name 并点 Create。
例如,若要创建
dev
目标命名空间,请在 Name 字段中输入dev
。您可以重复前面的步骤来创建app-team-1
和app-team-2
目标命名空间。Namespaces 页面显示创建的目标命名空间。
-
点目标命名空间并进入 YAML 选项卡,以验证 Operator 添加的
argocd.argoproj.io/managed-by-cluster-argocd
标签。
-
进入 Administration
验证您的用户定义的集群范围的 Argo CD 实例是否已配置有集群角色来管理集群范围的资源:
-
进入 User Management
Roles,然后从 Filter 列表中选择 Cluster-wide Roles。 使用 Search by name 字段搜索创建的集群角色。例如,
example-spring-petclinic-argocd-application-controller
和example-spring-petclinic-argocd-server
。Roles 页面显示创建的集群角色。
验证 GitOps Operator 创建了以下基于角色的访问控制(RBAC)资源:
Name Kind 用途 <argocd_name>-<argocd_namespace>-argocd-application-controller
ClusterRole
和ClusterRoleBinding
对于 Argo CD
Application
Controller,在集群级别监视和列出应用程序资源<argocd_name>-<argocd_namespace>-argocd-server
ClusterRole
和ClusterRoleBinding
对于 Argo CD 服务器,在集群级别监视和列出
应用程序资源
<argocd_name>-<target_namespace>
Role
和RoleBinding
要让 Argo CD 服务器通过 UI、API 或 CLI 管理目标命名空间中的
应用程序资源
-
进入 User Management
其他资源