給 GitOps 團隊:Flux ImageUpdateAutomation 推進映像時,需可稽核 Webhook 連到 OpenClaw 網關,驅動金絲雀探針與失敗廣播。本文以 Flux 為主軸,與 Argo Rollouts 專文區隔,附對照表與七步清單。
結論:觸發來自 Git 寫回與映像策略,非 Rollouts Pod 量測;請將 Bearer、多節點切片、合併探針與 openclaw doctor 摘要收成單一 JSON再決定 digest。
- 契約漂移:Receiver 與網關欄位版本不一易生金絲雀假陽性。
- 令牌重疊:輪替未留雙驗證視窗則多節點同拒或同打穿。
- 探針碎裂:doctor 全文過長致 Webhook 逾時,須先切片再合併。
決策矩陣:Flux 自動化對上 Argo Rollouts(主題區隔)
| 維度 | Flux ImageUpdateAutomation | Argo Rollouts(另文) |
|---|---|---|
| 觸發來源 | ImageRepository/ImagePolicy 偵測標籤並寫回 Git | AnalysisRun 綁定 Rollout 步驟與量測模板 |
| 狀態真相 | Git 與叢集對帳由 Flux Kustomize/Helm 承接 | ReplicaSet 權重與分析工作負載 |
| Webhook 角色 | 通知網關候選映像並啟金絲雀切片 | 勿以 CD 健康檢查當金絲雀;見 Rollouts 文。 |
延伸:Rollouts 金絲雀版、日誌與失敗廣播。實務上兩條鏈路可並存於不同命名空間,但端點與密鑰務必分離以利稽核與降權演練。
Webhook 契約:標頭、本文與重試邊界
固定 HTTPS POST,Authorization: Bearer 與 application/json。本文含 叢集識別、映像參考、修訂摘要、時間戳;二〇〇 僅表已排程探針。客戶端用指數退避加抖動與硬上限,避免同秒重試打滿網關。
多節點設定切片:clustervps 上的權重與標籤
兩台以上 clustervps Mac mini 將 stable/canary 網關分設定切片(env、launchd、或 Nomad meta)。金絲雀採權重漸進,探針全綠再加權;回滾先降權再撤映像。稽核寫入本機日誌切片與 Git 訊息對帳。
探針:合併 ImagePolicy 狀態與 openclaw doctor
網關輸出單一 merged:映像策略、就緒、RTT,加上 openclaw doctor --json 精簡欄位(版本、外掛、連線、磁碟)。長診斷落日誌切片,Webhook 帶雜湊。紅線時頂層 ok: false 附短碼。
失敗廣播:digest 視窗與去重鍵
非二〇〇或 ok: false 時,以五分鐘視窗依 digest 鍵(叢集+映像+錯誤碼)廣播一次。成功路徑每小時心跳即可;嚴重度對齊值班表。
落地步驟(含令牌、金絲雀分流、合併 doctor)
- 核發令牌。Secret 存 Bearer,通知節點存影子密鑰;網關雙金鑰並存後輪替。
- 註冊 Receiver。Flux Webhook Receiver 指到 OpenClaw 路徑,欄位對齊契約。
- 金絲雀分流。canary 網關獨立 DNS 或權重,與自動化觸發同時間線。
- 合併 doctor。腳本跑
openclaw doctor --json,map 固定欄位入 merged,長文寫 logs。 - 門檻與演練。錯誤率、RTT、磁碟閾值版本化於 Git;注入四〇三/逾時驗證退避與 digest 單次觸發。
- runbook。切片邊界、輪替日曆、權重表入庫供跨區複製。
可引用:① Webhook 本文宜小於 六十四千位元組。② 權重每步增至多百分之二十五。③ digest 五分鐘、心跳六十分鐘常見預設。
常見問題(FAQ)
沿用 Rollouts 的 Webhook URL? 不建議,欄位語意不同。
Git 寫回失敗? 標 git_push: pending 並暫停加權。
多租戶令牌? 每租戶獨立 Secret/Receiver。
本文為維運指引。請對齊 Flux、OpenClaw 版本與內部資安裁決。