argocd使用自定义权限添加集群
创建自定义权限
创建自定义 serviceaccount 名称为 argocd-limited-role
kubectl create serviceaccount argocd-limited-role -n kube-system
创建创建自定义 ClusterRole ,名称为 argocd-limited-role
cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argocd-limited-role
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["get", "list", "watch", "create", "update"]
EOF
创建自定义 ClusterRoleBinding ,名称为 argocd-limited-role-binding
cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: argocd-limited-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argocd-limited-role
subjects:
- kind: ServiceAccount
  name: argocd-limited-role
  namespace: kube-system
EOF
添加集群
说明
创建自定义权限后,添加集群时通过 --service-account 参数指定 serviceaccount ,由于创建的自定义权限没有 delete 等权限(非最高权限),所以不会有如下警告
WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `kubernetes-admin@kubernetes` with full cluster level privileges. Do you want to continue [y/N]? 
$ argocd cluster add kubernetes-admin@kubernetes \
  --service-account argocd-limited-role \
  --system-namespace kube-system
{"level":"info","msg":"Created bearer token secret for ServiceAccount \"argocd-limited-role\"","time":"2025-05-26T14:58:50+08:00"}
Cluster 'https://10.0.0.10:6443' added

