从 Helm 手工发布迁移到 Argo CD

适用场景

目前用 helm upgrade 手工或 CI 直接发布,希望改为 GitOps 持续对账、可视化差异和一键回滚。迁移重点是 values 管理、发布顺序和 Hook 处理。

前置条件

步骤

  1. 导出现有 release:
helm list -A
helm get values demo -n demo > demo-values.yaml
helm get manifest demo -n demo > demo-manifest.yaml
  1. 把 chart 和 values 放入 Git:
gitops/
  apps/demo/
    Chart.yaml
    values.yaml
    values-prod.yaml
  1. 创建 Argo CD Application:
argocd app create demo \
  --repo https://github.com/example/gitops.git \
  --path apps/demo \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace demo \
  --helm-set-file values=values-prod.yaml \
  --sync-policy none
  1. 先对比差异,不要立即自动同步:
argocd app diff demo
argocd app sync demo --dry-run
  1. 处理 Helm Hook:
  1. 确认稳定后开启自动同步:
argocd app set demo --sync-policy automated --self-heal

验证

回滚

常见坑

相关命令