我們有一個包含所有 Kubernetes 叢集 yaml 檔案的 GitHub 儲存庫,當我們想要更新部署時,我們只需編輯 yaml 並推送到 GitHub。
不幸的是,我們必須kubectl apply -f file.yaml
如何使用 ArgoCD 或其他 CD 工具來自動化部署?
我們希望有一個工作流程觸發器,一旦將 YAML 檔案變更推送到 GitHub,就會自動將變更套用到叢集。
我們面臨的問題是 GitHub Repo 並不是特定部署所獨有的,並且如上所述,它包含整個叢集的所有 YAML 檔案。
目前,我們認為唯一的選擇是 kubectl 應用整個 GitHub 儲存庫,但如果只有一個檔案發生了變化,這沒有意義?
答案1
我會調查一下通量。您可以將 Flux 指向儲存庫的根目錄(或特定目錄),它將負責部署您定義的清單。它還可以檢測更改,因此如果您將更改推送到儲存庫,Flux 將推出更改。
ArgoCD 也可以工作。但由於您提到該儲存庫並非特定部署所獨有,並且包含整個叢集的清單,因此 Flux 在這種情況下可能會運作得更好。
最好嘗試這兩種工具或任何其他工具,看看哪種最適合您的工作流程。