我们有一个包含所有 Kubernetes 集群 yaml 文件的 GitHub repo,当我们想要更新部署时,我们只需编辑 yaml 并推送到 GitHub。
不幸的是,我们必须kubectl apply -f file.yaml
如何使用 ArgoCD 或其他 CD 工具来实现部署自动化?
我们希望有一个工作流触发器,一旦将 YAML 文件更改推送到 GitHub,它就会自动将其应用到集群。
我们面临的问题是 GitHub Repo 并不是特定于特定部署的,并且如上所述,它包含整个集群的所有 YAML 文件。
目前,我们认为唯一的选择是 kubectl 应用整个 GitHub 存储库,但如果只有一个文件发生了变化,这是否有意义?
答案1
我会调查通量。您可以将 Flux 指向存储库的根目录(或特定目录),它将负责部署您定义的清单。它还会检测更改,因此如果您将更改推送到存储库,Flux 将推出更改。
ArgoCD 也可以。但是由于您提到存储库并非特定于特定部署,并且包含整个集群的清单,因此 Flux 可能在这种情况下效果更好。
最好尝试两者或任何其他工具,看看哪种工具最适合您的工作流程。