3.5. 创建用户定义的集群角色并为应用程序控制器配置用户定义的权限
作为集群管理员,要将用户定义的权限添加到聚合的集群角色中,您必须创建一个或多个用户定义的集群角色,然后为集群范围的 Argo CD Application CD 实例的 Argo CD Application Controller 组件配置用户定义的权限。
先决条件
- 您已启用了为集群范围的 Argo CD Application CD 实例的 Argo CD Application Controller 组件创建聚合的集群角色。
您有以下由 Red Hat OpenShift GitOps Operator 创建和管理的默认集群角色:
-
<argocd_name>-<argocd_namespace>-argocd-application-controller
聚合集群角色带有预定义的aggregateRule
字段 -
<argocd_name>-<argocd_namespace>-argocd-application-controller-view
带有预定义的查看
权限 -
<argocd_name>-<argocd_namespace>-argocd-application-controller-admin
没有预定义权限
-
流程
使用以下命令,创建带有所需标签和权限的新集群角色:
oc apply -n <namespace> -f <cluster_role_name>.yaml
$ oc apply -n <namespace> -f <cluster_role_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<namespace>
- 指定定义的命名空间的名称。
<cluster_role_name>
指定定义的集群角色 YAML 文件的名称。
用户定义的集群角色 YAML 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示另外,您可以使用 Web 控制台从 Administrator 视角创建用户定义的集群角色。您可以进入 User Management
Roles Create Role,使用前面的 YAML 模板添加权限,然后点 Create。 输出示例
clusterrole.rbac.authorization.k8s.io/user-application-controller created
clusterrole.rbac.authorization.k8s.io/user-application-controller created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建了用户定义的集群角色。
运行以下命令,验证 <
argocd_name>-<argocd_namespace>-argocd-application-controller-admin
集群角色是否继承了用户定义的集群角色的权限:oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller-admin -o yaml
$ oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller-admin -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<argocd_name>
- 指定用户定义的集群范围的 Argo CD 实例的名称。
<argocd_namespace>
指定安装 Argo CD 的命名空间。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示或者,您可以使用 OpenShift Container Platform Web 控制台从 Administrator 视角进行验证。您可以进入 User Management
Roles,使用 Filter 选项,选择 Cluster-wide Roles,并搜索 < argocd_name>-<argocd_namespace>-argocd-application-controller-admin
集群角色。您必须打开集群角色来检查详情和配置。
运行以下命令,验证
<argocd_name>-<argocd_namespace>-argocd-application-controller
聚合集群角色是否继承来自 <argocd_name>-<argocd_namespace>-argocd-application-controller-admin
和 <argocd_name>-<argocd_namespace>-argocd-application-controller-view
集群角色的权限:oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller -o yaml
$ oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<argocd_name>
- 指定用户定义的集群范围的 Argo CD 实例的名称。
<argocd_namespace>
指定安装 Argo CD 的命名空间。
聚合集群角色的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示或者,您可以使用 OpenShift Container Platform Web 控制台从 Administrator 视角进行验证。您可以进入 User Management
Roles,使用 Filter 选项,选择 Cluster-wide Roles,并搜索聚合的集群角色。您必须打开集群角色来检查详情和配置。