介紹
Argo CD 是一個流行的開源實現,用於在 Kubernetes 頂部進行 GitOps 持續交付。您的應用程序、定義、配置和環境應該是聲明性的並且受版本控制。同時,應用程序部署和生命周期管理應該是自動化的、可審核的並且易於理解。所有這些都可以使用 Argo 實現。
Argo CD 遵循相同的 GitOps 模式和原則,因此使用聲明性方法來維護您的集群狀態。同步通過 Git 存儲庫進行,其中存儲了您的 Kubernetes 清單。Kubernetes 清單可以通過幾種方式指定:
像 Kubernetes 集群中运行的每个应用程序一样,Argo CD 通过存储在 YAML 清单中的自定义资源定义(CRD)进行配置。其中最重要的一个是 Application CRD。在 Argo CD 应用程序中,您定义应使用哪个 Git 存储库来同步哪个 Kubernetes 集群。它可以是部署了 Argo CD 的相同 Kubernetes 集群,也可以是外部的一个。
Argo CD 被实现为一个 Kubernetes 控制器,它持续监视运行中的应用程序,并将当前(或实时)状态与目标状态(如在 Git 存储库中指定的)进行比较。其实时状态与目标状态不符的已部署应用程序被视为 OutOfSync
。Argo CD 报告并可视化差异,同时提供自动或手动将实时状态同步回目标状态的功能。
Argo CD 提供许多功能,其中最值得注意的包括:
- 支持多个配置管理/模板工具,如:
Kustomize
、Helm
、Ksonnet
、Jsonnet
、plain-YAML
。 - 管理和部署到多个集群的能力。
- SSO 集成(
OIDC
、OAuth2
、LDAP
、SAML 2.0
、GitHub
、GitLab
、Microsoft
、LinkedIn
)。 - 多租户和 RBAC 授权策略。
- 应用程序资源的健康状态分析。
- 回滚/在Git存储库中提交的任何应用程序配置中的任何地方进行回滚。
- 自动化配置漂移检测和可视化。
- 提供应用程序活动实时视图的Web UI。
- 用于自动化和CI集成的CLI。
- Webhook集成(GitHub,BitBucket,GitLab)。
- PreSync、Sync、PostSync钩子,以支持复杂的应用程序部署(例如蓝/绿色和金丝雀升级)。
- Prometheus指标。
在本教程中,您将学习如何:
- 使用
Helm
为您的DOKS
集群提供Argo CD
。 - 使用
GitOps
原则,使您的Kubernetes
集群应用程序状态与Git
存储库同步。 - 通过Argo CD部署和管理应用程序。
完成本教程中的所有步骤后,您应该拥有一个部署了Argo CD
的DOKS
集群,它将:
- 通过Application CRDs处理集群协调。
- 使用应用程序CRDs内定义的Helm源处理Helm发布。
DOKS 和 Argo CD 用於 Helm 發佈的概觀
下面的圖表顯示了 Argo CD 如何管理使用 Git 存儲庫托管的 Helm 應用程序:
目錄
- 介紹
- 先決條件
- 了解 Argo CD 應用程序部署的概念
- 安裝 Argo CD
- 訪問和探索 Argo CD Web 介面
- 了解 Argo CD 命令行界面
- 引导 Argo CD 应用程序
- 使用 Argo CD 应用程序集
- 卸载 Argo CD 应用程序
- 结论
先决条件
完成本教程,您需要:
- A working
DOKS
cluster that you have access to. Please follow the Starter Kit DOKS Setup Guide to find out more.to find out more. - A GitHub repository and branch, to store Argo CD and your applications manifests. Must be created beforehand.
- A Git client, for cloning the
Starter Kit
repository. - Kubectl CLI,用於與
Kubernetes
互動。遵循這些 指示 來使用kubectl
和doctl
連接到您的集群。 - Argo CLI,使用命令行界面與
Argo CD
進行交互。 - Kubeseal,用於加密密鑰和 Sealed Secrets Controller 互動。
- Helm,用於管理
Argo CD
的發布和升級(選擇性,但通常建議在生產系統中使用)。
了解 Argo CD 概念進行應用部署
Argo CD 使用 Application 核心概念來管理應用程式部署和生命週期。在 Argo CD 應用程式清單中,您定義了托管應用程式定義的 Git 存儲庫,以及相應的 Kubernetes 叢集來部署應用程式。換句話說,Argo CD 應用程式定義了源代碼庫與 Kubernetes 叢集之間的關係。這是一個非常簡潔和可擴展的設計,您可以將多個源(Git 存儲庫)和相應的 Kubernetes 叢集關聯起來。
A major benefit of using applications is that you don’t need to deploy Argo to each cluster individually. You can use a dedicated cluster for Argo, and deploy applications to all clusters at once from a single place. This way, you avoid Argo CD downtime or loss, in case other environments have issues or get decommissioned.
此外,您可以將類似的應用程式分組到一個 Project 中。Project 允許對應用程式進行邏輯分組,並與多個團隊一起使用時,也可以分配相應的角色/權限。如果未指定,每個新應用程式都屬於 default
專案。default
專案會自動創建,並且沒有任何限制。可以修改默認專案,但不能刪除。
起始套件
使用 默認
項目,快速啟動使用 Argo CD。然後,您將學習如何為每個 起始套件組件
創建一個 應用程序
,並使用 Helm 圖表
作為 應用程序來源
。Argo CD 不僅限於 Helm 來源,您還可以利用 Kustomize、Ksonnet、Jsonnet 等的強大功能。請查看 應用程序來源 頁面以獲取更多詳細信息。
雖然您可以使用 Argo CD 的圖形 UI(Web 接口)創建應用程序,但起始套件依賴於 GitOps 声明式方式,通過 YAML 構建文件。每個 YAML 配置都充當每個應用程序的配方,因此它可以存儲在 Git 存儲庫中。這意味著,如果您重新創建環境或移至另一個集群,您始終可以重建您的 Argo CD 設置。更重要的是,您可以通過 Git 歷史來執行審計並跟踪每個更改。最佳實踐是將 Argo CD 配置文件存儲在單獨的 Git 存儲庫中,而不是用於應用程序開發的存儲庫。您可以從 Argo CD 官方文檔網站上的最佳 實踐頁面 中閱讀有關此主題的更多信息。
重要提示:
需要牢记的重要一点是,默认情况下,Argo CD 不会自动同步您的新应用程序。当首次创建 ArgoCD 应用程序时,其状态为 OutOfSync
。这意味着 ArgoCD 应用程序指向的 Git 存储库状态与 Kubernetes 集群状态不匹配。创建新的 ArgoCD 应用程序不会触发目标集群上的自动部署。
要启用自动同步和删除孤立资源(修剪),您需要创建一个 syncPolicy
。您还可以配置 Argo CD 自动恢复通过 kubectl
进行的手动更改。您可以在官方文档网站上阅读有关 自动同步策略 的更多信息。
使用 Git 存储库源的典型 Application CRD
如下所示:
上述配置的解释:
spec.project
: 告诉 Argo CD 为应用程序使用哪个项目(在此示例中为default
)。spec.source.repoURL
: 用于同步集群状态的 Git 存储库 URL。spec.source.targetRevision
: 用于同步的 Git 存储库修订版本(也可以是分支或标签名称)。spec.source.path
: 存储源文件(YAML 清单)的 Git 存储库路径。spec.destination.server
: 目标 Kubernetes 集群地址。通常指向https://kubernetes.default.svc
,如果 Argo CD 使用部署它的同一集群。spec.destination.namespace
:用於您的應用程式的 Kubernetes 命名空間。spec.syncPolicy.automated
:啟用集群中應用程式與 Git 存儲庫的自動同步。spec.syncPolicy.automated.prune
:Prune 指定是否刪除在自動同步中不再在來源中找到的集群資源。spec.syncPolicy.automated.selfHeal
:指定是否在集群中手動修改資源時(例如通過kubectl
)將資源恢復到其所需的狀態。
您還可以使用 Helm 存儲庫作為在集群中安裝應用程式的來源。典型的使用 Helm 存儲庫源安裝應用程式的 Application CRD
如下(與 Git 存儲庫示例類似,只是改為使用 Helm 圖表存儲庫):
上述配置的解釋:
spec.source.chart
:要用作應用程式來源的 Helm 圖表。spec.source.repoURL
:Helm 圖表存儲庫 URL。spec.source.targetRevision
:用於應用程式的 Helm 圖表版本。spec.source.helm.releaseName
:要在您的 Kubernetes 集群中創建的 Helm 發布名稱。spec.source.helm.values
:指定要傳遞給 helm 模板的 Helm 值,通常定義為一個區塊。spec.destination.server
:目標 Kubernetes 集群地址。如果 Argo CD 使用部署它的相同集群,通常指向https://kubernetes.default.svc
。spec.destination.namespace
:Kubernetes 命名空間,用於您的應用程式。
請繼續閱讀有關 Argo CD 核心概念 的官方文件網站。接下來,您將發現可用的安裝選項,以在您的 Kubernetes 叢集中部署 Argo CD。
安裝 Argo CD
Argo CD 可以使用 kubectl
或 Helm
進行安裝:
- 使用
kubectl
和安裝清單文件。此方法不提供對各種安裝參數的直接控制。如果您對基於 Helm 的安裝不太熟悉,這是開始使用的最直接選擇。 - Helm 基於安裝。提供對 Argo CD 應用程式部署和生命週期的更精細控制。建議用於
HA
(高可用性)配置和如果 Argo CD 用於生產
。
接下來,根據您想要的功能,您有兩個選擇:
多租戶
模式。此類安裝通常用於為組織中的多個應用程式開發團隊提供服務,並由平台團隊維護。最終用戶可以通過API 伺服器
使用Web UI
或argocd
CLI 訪問 Argo CD。核心
僅模式。這是一個簡化安裝,沒有圖形用戶界面、API 服務器、SSO 等,並安裝每個組件的輕量級(非 HA)版本。
Starter Kit 正在使用 多租戶
和 高可用性
模式在您的 DOKS 集群中安裝 Argo CD。這樣,您將擁有一個可靠的設置並探索所有可用的功能,包括用戶界面。請訪問安裝方法文檔頁面,獲取有關該主題的更多信息。
基於 Kubectl 的安裝
此方法需要 kubectl
,並且是一個兩步過程:
- 創建一個
命名空間
,以部署 Argo CD 本身。 - 通過
kubectl
運行 HA 安裝清單。
請按照以下命令運行:
現在,請繼續檢查安裝是否成功。首先,檢查所有 Argo CD 部署是否正常:
輸出看起來類似於(檢查 READY
列 – 所有 Pods
必須正在運行):
Argo CD 服務器在 HA
模式下必須具有 replicaset
的最小值為 2
。如果由於某些原因某些部署未能正常工作,請檢查受影響組件 Pods 的 Kubernetes 事件和日誌。
基於 Helm 的安裝
此方法需要在您的本地機器上安裝 Helm。Starter Kit 提供了一個準備好的 Helm values 文件供您開始使用,並在 HA 模式下安裝 Argo CD(不包括自動縮放)。
請按照以下步驟完成基於 Helm 的安裝:
- 首先,克隆 Starter Kit 目錄(如果尚未),並將目錄更改為您的本地副本:
- 接下來,添加 Argo CD Helm 存儲庫:
- 現在,搜索可用於安裝的
argo
Helm 存儲庫中的圖表:
輸出類似於:
- 然後,使用您選擇的編輯器(最好支持 YAML lint)打開並檢查 Starter Kit 存儲庫中提供的 Argo CD Helm values 文件。例如,您可以使用 VS Code:
- 最後,將 Argo CD 部署到您的 DOKS 集群:
–create-namespace \
注意:
使用了 Helm
圖表的 特定
版本。在這種情況下,選擇了 4.9.4
版本,它對應應用程序的 2.4.0
版本。通常,鎖定到特定版本是一個良好的做法。這有助於獲得可預測的結果,並通過 Git
實現版本控制。
現在,檢查 Helm 發布是否成功:
輸出看起來類似於(STATUS
列的值應設置為deployed
):
最後,驗證 Argo CD 應用程序的部署狀態:
輸出看起來類似於(檢查READY
列 – 所有Pods
必須正在運行):
Argo CD 服務器的replicaset
最小值必須為2
,以便進入HA
模式。如果出於某些原因,一些部署不健康,請檢查受影響組件 Pod 的 Kubernetes 事件和日誌。
您還可以通過訪問社區維護的存儲庫來獲取有關 Argo CD Helm 圖表的更多信息。
接下來,您將學習如何訪問並探索由 Argo CD 提供的圖形用戶界面的主要功能。
Argo CD提供的一個很棒的功能是網絡界面,用於執行各種管理任務和查看應用程序部署狀態。您可以使用圖形用戶界面創建應用程序並以各種方式與Argo CD進行交互。另一個重要功能是檢查每個應用程序的狀態並訪問Kubernetes事件,以及您的應用程序日誌。此外,Argo CD還提供了每個應用程序部署正在使用的所有Kubernetes對象(副本集、Pod等)的可視表示。
通過端口轉發Kubernetes服務argocd-server
,可以訪問Web界面。請在Shell終端中運行以下命令:
現在,打開Web瀏覽器,並導航到localhost:8080(請暫時忽略無效的TLS證書)。您將會看到Argo CD登錄頁面。默認的管理員用戶名是admin
,密碼在安裝時隨機生成。您可以運行以下命令獲取它:
接下來,您將被重定向到應用程序儀表板頁面。從這裡,您可以通過UI查看、創建或管理應用程序(還提供了一個YAML編輯器),以及執行同步或刷新操作:
如果您點擊任何應用程序圖塊,還將顯示所有涉及對象的可視表示:
在下一部分,您可以管理應用程序項目、存儲庫和集群:
最後,用戶信息部分顯示可用用戶並允許管理員密碼更新:
你可以玩弄并详细探索每个部分和子部分,以查看所有可用的功能。接下来,您将学习如何使用名为 argocd
的CLI对应项。
Argo CD允许通过Web界面或CLI使用相同的功能集。要使用 argocd
CLI,您需要打开一个单独的shell窗口,然后只需键入 argocd
,不带任何参数。默认情况下,它会显示可用的命令和选项:
对于任何命令或子命令,您都可以使用以下模式调用相应的帮助页面:argocd <command/subcommand> --help
。例如,如果您想要检查 app
命令的可用选项:
# 获取应用程序的详细信息
请继续探索其他命令/子命令,以查看所有可用的选项。接下来,您将学习如何引导您的第一个Argo CD应用程序,该应用程序将自动部署所有Starter Kit组件。
在新安裝的情況下,Argo CD 不知道從哪裡同步您的應用程式,或者可用於源應用程式清單的 Git 存儲庫是什麼。因此,第一步是執行一次稱為啟動的操作。您可以使用 argocd CLI 或圖形用戶界面執行本節中介紹的所有操作。
有多種啟動群集的方式(例如,通過腳本),但通常,Argo CD 用戶會使用 app of apps
模式。這意味著您將通過使用 good
CLI(或 Web 介面)創建一個父應用程序,該應用程序將引用並啟動 Kubernetes 集群中其餘的應用程序。
首先,您需要準備您的 Git 存儲庫以使用一致的佈局。在以下示例中,您將創建一個類似於的 Git 存儲庫佈局結構:
- 請打開終端並按照以下步驟為您的 Git 存儲庫創建佈局:
- 首先,克隆您用於測試 Argo CD 的 git 存儲庫(請確保相應地替換
<>
佔位符):
- 接下來,將目錄更改為您的本地副本並創建目錄結構(請確保相應地替換
<>
佔位符):
- 複製提供的每個組件在 Starter Kit 存儲庫中的應用程序清單(您也可以查看並了解每個清單的結構):
最後,提交更改並推送到原始碼庫。
接下來,您將創建父應用程序部署,並讓 Argo CD 自動將所有 Starter Kit 應用程序同步到您的 DOKS 集群。
使用 Argo CD CLI 的 App of Apps 模式
在本節中,您將學習如何使用 argocd
CLI 創建並使用 app of apps
模式來在您的 DOKS 集群中部署所有 Starter Kit 組件。下圖顯示了主要概念:
首先,您需要在本地機器上的單獨終端窗口中對 Argo CD 主服務器進行端口轉發:
接下來,argocd
CLI 需要訪問 Argo CD API 服務器才能工作。在另一個終端窗口中,您需要使用以下命令對argocd
客戶端進行身份驗證,以連接到您的 Argo CD 服務器實例:
輸出看起來類似於:
然後,請運行以下命令來創建starter-kit-apps
父應用程式(請確保相應替換<>
佔位符):
- –dest-namespace argocd \
- –dest-server https://kubernetes.default.svc \
- 上述命令將在
argocd
命名空間中創建一個名為starter-kit-apps
的新Argo CD 應用程式
,配置為:
將目標設置為與 Argo CD 部署的同一 Kubernetes 集群,因為--dest-server
設置為https://kubernetes.default.svc
。
使用--repo
參數設置的 GitHub 存儲庫來同步您的集群。
掃描並應用在clusters/dev/helm
目錄中找到的所有應用程序清單(--path
參數)。
接下來,您需要同步starter-kit-apps
應用程序(請記住,除非明確指定,否則 Argo CD 默認不同步任何內容):
輸出看起來類似於:
在上述命令完成后,您應該會在 Argo CD 伺服器的主控台上看到一個新應用程式。請打開瀏覽器並導航至 http://localhost:8080。然後選擇 應用程式
選項卡,並點擊 starter-kit-apps
磚塊(請注意組合圖中的 應用程式的應用程式
模式):
您也可以通過 CLI 檢查新的應用程式:
輸出類似於:
父應用程式 starter-kit-apps
將顯示為已同步,但子應用程式將不同步。接下來,您可以通過 Web 介面或 CLI 進行同步操作:
同步操作可能需要一段時間才能完成(甚至可能需要 5-10 分鐘),具體取決於部署的所有應用程式的 Kubernetes 物件的複雜性和數量。
過一段時間後,請再次列出所有應用程式:
- 輸出類似於(請注意現在所有應用程式都已同步):
Velero 應用程式部署將會失敗並且故意保留在 SyncError
狀態,以便讓讀者練習並學習如何診斷 Argo CD 中的應用程式問題。請參考下面的 提示 區段,了解如何診斷 Argo CD 應用程式問題。
引導啟動父應用程式是一次性操作。對於每個應用程式的後續 Git 變更,Argo CD 將檢測漂移並應用所需的變更。Argo CD 默認使用 輪詢機制
來檢測 Git 儲存庫中的變更。默認的 刷新間隔
設置為 3 分鐘
。您也可以利用 Git Webhook 的功能,而不是依賴輪詢機制。請訪問官方文件網站,了解如何創建和配置 Argo CD 以使用 Git Webhook。
提示:如果希望自動配置父應用程式進行同步(同時啟用自我修復和自動修剪),您可以使用以下命令(不要忘記相應地替換 <>
佔位符):
–dest-namespace argocd \
–dest-server https://kubernetes.default.svc \
–sync-policy automated \
–auto-prune \
在任何同步失敗的情況下,您都可以通過檢查相應應用程式的 Kubernetes 事件來解決(通過argocd app get <application_name>
):
輸出類似於:
- 接下來,您將學習如何使用
應用程式的應用程式模式
,並通過 Argo CD 圖形用戶界面執行相同的步驟。 - 通過 Argo CD Web 界面使用 App of Apps 模式
- 在本部分中,您將學習如何使用 Argo CD Web 界面來創建和使用
應用程式的應用程式
模式,以在您的 DOKS 集群中部署所有 Starter Kit 組件。下圖說明了主要概念: - 正如上圖所示,通過 Web 界面引導新應用程式與 CLI 對應的操作非常相似。唯一的區別在於您將在不同的面板/窗口之間導航並使用點擊操作。在幕後,Argo CD 將創建所需的應用程式 CRD 並將更改應用到您的 Kubernetes 集群中。
- 首先,請打開 Web 瀏覽器並登錄到 Argo CD Web 控制台。默認用戶名為
admin
,默認密碼可通過以下方式獲取: - 一旦登录,您将被重定向到应用程序仪表板页面(在新安装中,仪表板为空)。 接下来,点击
创建应用程序
按钮。 一个新面板弹出,要求输入应用程序细节: - 请适当填写每个字段:
应用程序名称
:新应用程序名称(例如starter-kit-apps
)。
项目
:此应用程序所属的项目名称(第一次使用 Argo CD 时,您可以使用default
)。
同步策略
和同步选项
:配置同步策略和选项(例如手动
,自动
,重试次数,重试之间的间隔等)。
源存储库 URL
:您的 GitHub 存储库 URL 地址 – 例如https://github.com/<YOUR_GITHUB_USERNAME>/<YOUR_ARGOCD_GITHUB_REPO_NAME>.git
。
源路径
:存储应用程序清单的 GitHub 存储库目录路径(例如clusters/dev/helm
)。
目标集群 URL
:与您的 GitHub 存储库同步的目标 Kubernetes 集群(例如https://kubernetes.default.svc
,用于部署 Argo CD 的本地集群)。
目标命名空间
:用于 Argo CD 应用程序的目标 Kubernetes 集群命名空间(通常为argocd
)。
填写所有应用程序详细信息后,点击顶部的创建
按钮。 仪表板页面上显示一个新的应用程序磁贴:
如果您點擊應用程式圖塊,您可以觀察到app of apps pattern
,通過查看組合圖:
如果您查看上面的圖片,您會注意到所有應用程式都標記為OutOfSync
。下一步是在父應用程式上觸發同步操作。然後,所有子應用程式也將同步。請繼續按下父應用程式圖塊上的Sync
按鈕。右側將彈出一個新面板(請注意,下面所有子應用程式都被選中):
保留默認值,然後按上方的Synchronize
按鈕,觀看Argo CD如何將同步操作串聯到所有應用程式:
Velero應用程式部署將失敗並故意保留在SyncError
狀態,作為讓讀者熟悉並學習如何診斷Argo CD應用程式問題的練習。請查閱下面的Hints部分,了解如何診斷Argo CD應用程式問題。
如果一切順利,所有應用程序應該都具有綠色邊框,狀態應該為健康
和同步
。引導過程是一次性操作。對於每個應用程序的後續Git更改,Argo CD將檢測偏移並應用所需的更改。Argo CD默認使用輪詢機制
來檢測Git存儲庫中的更改。默認的刷新間隔
設置為3分鐘
。您也可以利用Git Webhook的強大功能,而不是依賴輪詢機制。請訪問官方文檔網站以了解如何創建和配置Argo CD以使用Git Webhooks 。
提示:
如果需要,您可以通過將 SYNC POLICY
字段值設置為 Automatic
來自動同步父應用程序。要啟用自我修復和自動修剪,請勾選 PRUNE RESOURCES
和 SELF HEAL
复選框:
在任何同步失敗的情況下,您都可以查看該應用程序的Kubernetes事件。使用Web界面,您可以導航到受影響的應用程序磚塊:
然後,從應用程式頁面標頭的 LAST SYNC RESULT
部分中點擊以紅色標記的 Sync failed
訊息連結。一個新的面板彈出,顯示有關同步操作失敗的有用信息:
- 在下一節中,您將學習如何使用單個CRD(Custom Resource Definition)來管理多個應用程序 –
ApplicationSet
。 - 使用 Argo CD 應用程序集
應用程序集是 Argo CD 提供的另一個強大功能。 ApplicationSet 控制器是 Argo CD 的一個子項目,通過模板化定義添加應用程序自動化。此功能可幫助您在應用程序清單中避免重複(利用DRY原則)。
ApplicationSet 控制器安裝在 Argo CD 旁邊(在同一個命名空間內),並根據新的 ApplicationSet 自訂資源(CR)的內容自動生成 Argo CD 應用程序。
注意:
從 Argo CD 的版本 2.3.x
開始,您無需單獨安裝 ApplicationSet 控制器
,因為它是 Argo CD 主要安裝的一部分。 Starter Kit 使用 version >= 2.3.1
,因此您無需做任何更改。
ApplicationSet
的主要概念是基於擁有一個值列表作為 generator
,以及一個template
,該模板通過輸入列表值進行填充。對於列表中的每個項目,都按順序生成一個新的應用程序模板。基本上,您定義了一個 ApplicationSet CRD,然後讓它根據輸入值為您生成您想要的任意多個 ArgoCD Application CRD。因此,您不需要創建和處理多個 Application manifests
,而是通過一個single manifest
– ApplicationSet
來管理所有事務。
這個概念還通過使用帶有參數的應用程序模板簡化了multi-cluster
和multi-environment
設置的管理。Application set還包括其他生成器,除了List Generators外:
Cluster generator:使用Argo CD定義的集群來模板化應用程序。
Git generator:使用Git存儲庫的文件/目錄來模板化應用程序。
典型的ApplicationSet CRD
使用List Generator
,如下所示:
將上述ApplicationSet
應用於您的Kubernetes集群將呈現三個Argo CD應用程序。例如,dev
環境應用程序顯示如下:
模板引擎在性质上非常强大,提供了许多可能性。请访问主要的ApplicationSet文档网站,了解更多关于这个功能的信息。
通过从 Git 存储库源中删除相应的清单来完成对由 Argo CD 管理的应用程序的卸载(或删除)。对于使用应用程序集模式
创建的应用程序,您只需要删除父应用程序(通过 CLI 或 Web 界面)。然后,所有子应用程序将作为流程的一部分被删除。
- 如何使用
argocd
CLI 删除starter-kit-apps
父应用程序(包括子应用程序): - 如果您希望在删除父应用程序时确保子应用程序及其所有资源也被删除,请确保向您的
应用程序定义
中添加适当的finalizer
:
Source:
https://www.digitalocean.com/community/developer-center/implementing-gitops-using-argo-cd