跳至正文

argocd同步和生产是否一致确认方法

ArgoCD 接管 Harbor 安全同步流程(100% 配置一致)

先提取手动部署的真实 Values → 对比 ArgoCD 配置 → 干跑验证 → 确认一致再同步

✅ 第一步:提取手动部署的真实 Values(基准)

# 1. 导出 Helm Release 原始生效 Values
helm get values harbor -n harbor > harbor-manual-values.yaml

# 2. 格式化输出(方便对比)
yq eval '.' harbor-manual-values.yaml > harbor-manual-values-formatted.yaml

✅ 第二步:对比 ArgoCD Values 与手动 Values

# 安装 yq(如未安装)
yum install yq -y

# 对比差异(只显示不同)
yq diff harbor-manual-values-formatted.yaml harbor-argocd-values.yaml

# 或使用 diff 对比
diff -u harbor-manual-values-formatted.yaml harbor-argocd-values.yaml

✅ 第三步:ArgoCD 干跑验证(同步前确认)

1. 临时关闭自动同步

syncPolicy:
  automated: {}
  syncOptions:
    - CreateNamespace=true
    - ServerSideApply=true
    - PruneLast=true
# 更新应用配置(不执行同步)
argocd app sync mix-cn-gz-harbor --prune=false

2. Dry Run 干跑验证

# CLI 方式干跑(推荐)
argocd app sync mix-cn-gz-harbor --dry-run --details

✅ 第四步:确认一致后执行安全同步

1. 恢复同步策略

syncPolicy:
  automated:
    prune: true
    selfHeal: false
  syncOptions:
    - CreateNamespace=true
    - ServerSideApply=true
    - PruneLast=true

2. 安全同步(无风险)

# 只更新,不删除资源
argocd app sync mix-cn-gz-harbor --prune=false

# 确认无误后再清理(可选)
# argocd app sync mix-cn-gz-harbor --prune=true

3. 最终验证

# 查看 Helm 状态
helm status harbor -n harbor

# 对比最终 Values
helm get values harbor -n harbor > harbor-argocd-final-values.yaml
yq diff harbor-manual-values-formatted.yaml harbor-argocd-final-values.yaml

# 检查 Pod
kubectl get pods -n harbor

🎯 核心总结

  • 基准:helm get values 导出真实运行配置
  • 对比:yq diff / diff 消除格式差异
  • 防护:--dry-run 提前验证渲染结果
  • 安全:先 --prune=false 再正式同步

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注