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再正式同步