Zeabur Builderv1alpha1

推送 commit,拿到映像檔 digest

Zeabur Builder 是用 BuildKit 從 Git 建置映像檔的 Kubernetes operator。每個新 commit 建置一次,推到 registry,再把映像檔寫進 status.latestImage,交給你的部署工具。

只負責建置,部署交給你原本的工具

從 ref 到 digest,每一步都是 Kubernetes 物件

  1. 解析 ref

    controller 透過 Git 的 smart HTTP 或 SSH,把 Build 的 ref 解析成 commit。

  2. 建置

    新的 commit 會建立一個 BuildRun 和一個 Job。Job 對同一個 Namespace 的 buildkitd 執行 buildctl,不需要特權。

  3. 推送

    映像檔推上 registry,digest 和標籤寫進 BuildRun 和 Build。

什麼時候會建置

觸發方式怎麼運作需要設定
輪詢controller 每分鐘向 Git 伺服器查詢一次 ref不用設定,spec.triggers.pollInterval 可調整
Push webhookGitHub、GitLab、Gitea、Forgejo、Bitbucket 和 Standard Webhooks在 chart 啟用 webhooks,每個 Build 一個 secret
GitHub App私有儲存庫用短效的 installation token,每個 commit 都有 commit status叢集管理員建立一次 App
手動改 builder.zeabur.com/rebuild annotation 重新建置目前的 commitspec.suspend 可停止自動建置

一個 Build,對應一個儲存庫

Build 寫出 Git 儲存庫和建置方式。沒寫 ref 時跟著預設分支,status.resolvedRef 會寫出是哪一個分支。

apiVersion: builder.zeabur.com/v1alpha1
kind: Build
metadata: {name: whoami, namespace: team-a}
spec:
  source: {git: {url: https://github.com/traefik/whoami}}
  builderRef: dockerfile