You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ArgoCD中实现同步操作的多人审批(复核)机制

ArgoCD实现多人员审批同步机制的方案

核心实现:基于AppProject的审批策略配置

ArgoCD原生支持通过AppProject配置多审批人机制,核心是设置审批人数要求并配合RBAC权限控制,确保只有满足审批数量后才能执行同步。

1. 创建/修改生产环境的AppProject

在argocd命名空间下创建或更新AppProject资源,指定需要2名审批人,并配置对应的权限规则:

apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
  name: production-project
  namespace: argocd
spec:
  description: 生产环境项目,要求双人审批同步操作
  # 允许的代码源仓库
  sourceRepos:
  - "https://your-production-git-repo.com/*"
  # 允许部署的目标集群和命名空间
  destinations:
  - namespace: production
    server: https://kubernetes.default.svc
  # 允许管理的集群资源类型(按需调整)
  clusterResourceWhitelist:
  - group: '*'
    kind: '*'
  # 配置审批策略:需要2名不同人员审批
  approvalPolicy:
    requiredApprovalCount: 2
  # 定义审批角色:仅允许审批,禁止直接同步
  roles:
  - name: production-approver
    description: 生产环境应用审批权限
    policies:
    - p, proj:production-project:production-approver, applications, approve, production-project/*, allow
    - p, proj:production-project:production-approver, applications, sync, production-project/*, deny
  # 定义同步角色:仅允许同步,无审批权限(可选,实现权限分离)
  - name: production-syncer
    description: 生产环境应用同步权限
    policies:
    - p, proj:production-project:production-syncer, applications, sync, production-project/*, allow
    - p, proj:production-project:production-syncer, applications, approve, production-project/*, deny

2. 分配RBAC用户权限

将需要参与审批的用户添加到production-approver角色中,修改ArgoCD的RBAC配置(通常在argocd-cm ConfigMap的policy.csv字段):

# 配置用户到审批角色
g, user_a@your-domain.com, proj:production-project:production-approver
g, user_b@your-domain.com, proj:production-project:production-approver
g, user_c@your-domain.com, proj:production-project:production-approver

# 配置同步权限用户(可选)
g, sync_admin@your-domain.com, proj:production-project:production-syncer

同步前的差异验证与审批流程

  1. 差异查看:当Git仓库中的配置与集群状态存在差异时,任意具备查看权限的用户可在ArgoCD UI中进入对应应用的Diff页面,对比变更内容(如资源新增、修改、删除),确认变更的合理性。
  2. 多人审批:两名不同的审批人登录ArgoCD,进入目标应用页面,点击Approve按钮完成审批操作。系统会记录审批人信息,直到满足requiredApprovalCount: 2的要求。
  3. 执行同步:审批完成后,具备production-syncer角色的用户可执行同步操作;若权限未分离,审批人也可在审批后直接同步(不推荐,建议审批与同步权限分离降低风险)。

可选增强:结合GitPR流程双重校验

为了进一步保障生产环境安全,可将ArgoCD的审批流程与Git仓库的PR审查流程结合:

  • 代码变更需先提交PR,经过至少两名开发人员的代码审查并合并后,再触发ArgoCD的差异检测。
  • 后续再进入ArgoCD的双人审批流程,实现代码审查+部署审批的双重管控。

内容的提问来源于stack exchange,提问作者sl3dg3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:23:13