Skip to content
zeabur-ossPublic

About

Build container images from Git, inside Kubernetes.

Topics

Resources

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Repository files navigation

Zeabur Builder: push a commit, get an image digest; a Build for a Git repository and the status field that holds the image it built

Zeabur Builder

Push a commit, get an image digest. A Kubernetes operator that builds container images from Git with BuildKit and hands the result to your rollout tool.

What it does

A Build names a Git repository and a builder:

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

For every new commit on the ref, the controller builds an image, pushes it to <registry.host>/<namespace>/<name> and writes it to status.latestImage as <repository>:<tag>@<digest>. Leave out ref to follow the repository's default branch; status.resolvedRef says which branch that was.

  • Two builders. dockerfile builds your Dockerfile. railpack plans the build with Railpack for repositories without one; its images run as uid 1000, so they start under Pod Security restricted.
  • Tags rollout tools can sort. main-1761058800-3e1a9c2 (branch, Unix time, commit), one per build, newest last. spec.output.tagTemplate and extraTags change them.
  • One buildkitd per namespace. Each namespace that builds gets its own buildkitd, cache, certificate authority and registry path. The cache stays on buildkitd's volume between builds, so RUN --mount=type=cache keeps its contents; it never goes to the registry. An idle buildkitd scales to zero after 10 minutes.
  • Build variables as secrets. spec.env reaches the build as BuildKit secrets, from a value or a Secret key.
  • Uploaded folders. spec.source.archive builds a folder that a client pushed to the registry as an OCI artifact, by digest (archive sources).
  • Small. One controller, a buildkitd per building namespace, one Job per build, three custom resources. The Job runs buildctl and needs no privileges.

Zeabur Builder builds images and stops there. Tests, deployment and log storage belong to your pipeline, rollout tool and log collector.

Documentation

Status

Zeabur Builder has no release yet. The API is v1alpha1. See status for what runs on main.

Contributing

See CONTRIBUTING.md. Report security issues as described in SECURITY.md, which also describes the trust model.

License

Apache-2.0.

About

Build container images from Git, inside Kubernetes.

Topics

Resources

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages