3.4. 启用创建聚合集群角色
要为集群范围的 Argo CD Application CD 实例的 Argo CD Application Controller 组件启用聚合集群角色,您必须通过编辑 Argo CD 自定义资源(CR)的 YAML 文件来配置对应的字段。
流程
在 Argo CD CR 中,将
.spec.aggregatedClusterRoles
字段的值设置为true
:Argo CD CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
argocd.argoproj.io/example configured
argocd.argoproj.io/example configured
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证集群范围的 Argo CD 实例的
Status
字段显示为Phase: Available
:oc describe argocd.argoproj.io/example -n spring-petclinic
$ oc describe argocd.argoproj.io/example -n spring-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Available
状态表示集群范围的 Argo CD 实例处于健康状态且可用。
注意Red Hat OpenShift GitOps Operator 创建以下默认集群角色并管理它们:
-
<argocd_name>-<argocd_namespace>-argocd-application-controller
聚合集群角色 -
<argocd_name>-<argocd_namespace>-argocd-application-controller-view
-
<argocd_name>-<argocd_namespace>-argocd-application-controller-admin
运行以下命令,验证 Operator 是否为 Argo CD Application Controller 和 Argo CD 服务器组件创建了默认的集群角色和集群角色绑定:
oc get ClusterRoles -l app.kubernetes.io/part-of=argocd
$ oc get ClusterRoles -l app.kubernetes.io/part-of=argocd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CREATED AT example-spring-petclinic-argocd-application-controller 2024-08-14T08:20:58Z example-spring-petclinic-argocd-application-controller-admin 2024-08-14T09:08:38Z example-spring-petclinic-argocd-application-controller-view 2024-08-14T09:08:38Z example-spring-petclinic-argocd-server 2024-08-14T08:20:59Z
NAME CREATED AT example-spring-petclinic-argocd-application-controller 2024-08-14T08:20:58Z example-spring-petclinic-argocd-application-controller-admin 2024-08-14T09:08:38Z example-spring-petclinic-argocd-application-controller-view 2024-08-14T09:08:38Z example-spring-petclinic-argocd-server 2024-08-14T08:20:59Z
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get ClusterRoleBindings -l app.kubernetes.io/part-of=argocd
$ oc get ClusterRoleBindings -l app.kubernetes.io/part-of=argocd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME ROLE AGE example-spring-petclinic-argocd-application-controller ClusterRole/example-spring-petclinic-argocd-application-controller 54m example-spring-petclinic-argocd-server ClusterRole/example-spring-petclinic-argocd-server 54m
NAME ROLE AGE example-spring-petclinic-argocd-application-controller ClusterRole/example-spring-petclinic-argocd-application-controller 54m example-spring-petclinic-argocd-server ClusterRole/example-spring-petclinic-argocd-server 54m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 不会创建
view
和admin
集群角色的集群角色绑定。这是因为view
和admin
集群角色仅将权限添加到聚合的集群角色中,而不直接配置 Argo CD Application Controller 的权限。提示或者,您可以使用 OpenShift Container Platform Web 控制台从 Administrator 视角进行验证。您可以分别进入 User Management
Roles and User Management RoleBindings。您可以搜索具有 app.kubernetes.io/part-of:argocd
标签的集群角色和集群角色绑定。运行以下命令,验证是否通过检查创建的角色输出的权限创建了聚合的集群角色:
oc get ClusterRole/<cluster_role_name> -o yaml
$ oc get ClusterRole/<cluster_role_name> -o yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<cluster_role_name
> 替换为所创建的角色的名称。
聚合集群角色的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow view
集群角色的输出示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin
集群角色的输出示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示或者,您可以使用 OpenShift Container Platform Web 控制台从 Administrator 视角进行验证。您可以进入 User Management
Roles,使用 Filter 选项,选择 Cluster-wide Roles,并搜索聚合的集群角色, 查看
,以及admin
集群角色。您必须打开集群角色来检查详情和配置。作为集群管理员,您可以创建一个或多个用户定义的集群角色,并为 Argo CD Application Controller 配置用户定义的权限。