Argo CD 3.3 發行候選版

新聞
HongKong
3
10:43 AM · Dec 22 ,2025

Argo CD v3.3 版本帶來了一些新功能和改進。具體發佈亮點包括:

PreDelete Hooks

PreDelete Hooks 是 Argo CD 中備受期待的功能。v3.3 終於支持了它。

PreDelete hooks 允許你在 Argo CD 刪除應用資源之前,先執行 Job 或其他資源。它就像應用生命週期中的缺失環節——之前有 PreSync、Sync、PostSync,現在有了 PreDelete。

之前,要在刪除前做清理工作,只能用外部腳本、人工干預,或者寄希望於 finalizers。

示例:

apiVersion: batch/v1
kind:Job
metadata:
name:cleanup-job
annotations:
    argocd.argoproj.io/hook:PreDelete
spec:
template:
    spec:
      containers:
      -name:cleanup
        image:alpine
        command:["sh","-c","echo 'Running pre-delete cleanup...'"]
      restartPolicy:Never

示例中定義了一個帶有 PreDelete 註解的 Job。當擁有該 Job 的 Application 被刪除時,Argo CD 會先創建並運行這個清理 Job,等待它成功完成後,才刪除其他資源。如果 Job 失敗,刪除操作會被阻止。

OIDC 背景令牌刷新

Argo CD 歷史上最受歡迎的問題之一終於解決了。很多用户使用 OIDC 提供商(如 Keycloak)時,常常在 UI 活躍操作不到 5 分鐘就被登出,因為訪問令牌過期。

現在,Argo CD 會在令牌過期前自動後台刷新 OIDC 令牌。新增的 refreshTokenThreshold 配置項允許你設置服務器在令牌剩餘有效期多長時主動刷新。這樣就不會再有 Keycloak 等 OIDC 提供商中途意外登出的情況。

Source Hydrator 功能增強

Source Hydrator 是 Argo CD v3.x 中開發最活躍的功能之一,v3.3 帶來了多項改進,使其更強大、更靈活:

  • 內聯參數支持:不必每次修改都提交參數文件,支持直接在 hydration 時傳入參數。
  • 更好的 Monorepo 支持:顯著提升了 monorepo 工作流的體驗。
  • 性能提升:減少不必要的 repo-server 調用,使 hydration 更快更高效。

ClusterResourceWhitelist 支持資源名稱

這是一個非常受歡迎的 RBAC 功能,v3.3 加入了支持。

之前 clusterResourceWhitelist 在 AppProjects 中只能按 API 組和類型限制訪問,如果允許訪問 CustomResourceDefinitions,意味着能訪問所有 CRD,無法限制到具體某幾個。

現在可以限制到指定資源名稱:

apiVersion: argoproj.io/v1alpha1
kind:AppProject
metadata:
name:my-project
spec:
clusterResourceWhitelist:
    -group:apiextensions.k8s.io
      kind:CustomResourceDefinition
      resourceNames:
        -crd1.example.com
        -crd2.example.com

支持淺克隆倉庫

該功能允許 Argo CD 只拉取所需的提交,而不是完整倉庫歷史,大大縮短了大倉庫的 git fetch 時間,從幾分鐘降到幾秒。

用户添加倉庫時可以用 --depth 參數開啓淺克隆:

argocd repo add <repo-url> --depth

KEDA 第一類支持

如果你在用 KEDA(Kubernetes 事件驅動自動擴縮),這次更新你一定喜歡:

  • 暫停 ScaledObject 和 ScaledJob:可以直接在 Argo CD UI 中暫停和恢復 KEDA 資源,方便維護、調試和控制發佈。
  • ScaledJob 健康檢查:Argo CD 現在能識別 KEDA ScaledJob 的健康狀態,顯示準確狀態而非“未知”。

其他重要改進

  • 通過 volume mount 提供 Redis 憑據,更安全的憑據管理
  • Ceph CRD 健康檢查,可直接在 Argo CD 監控 Ceph 存儲集羣健康
  • UI:為 appset UI 支持實現抽象層,邁出完整 AppSet UI 的第一步
  • CLI:支持按 API 組過濾
  • 可配置 Kubernetes API 超時時間
  • 支持 fork 發佈到自定義 Quay 鏡像庫
  • UI:刷新按鈕帶下拉菜單支持硬刷新
  • UI:按條件渲染應用視圖擴展
  • 動作菜單增加圖標
  • 應用集 pprof 端點
  • PullRequest 合併動作
user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.