Summary
Kimia is a Kubernetes-native OCI image builder that uses BuildKit under the hood. It is an actively maintained alternative to Kaniko with features like reproducible builds, SBOM/provenance attestation, and Cosign signing built-in.
Motivation
The catalog currently has a kaniko task but Kaniko has had limited maintenance activity. Kimia provides a modern alternative with:
- BuildKit-based — supports all Dockerfile features including multi-stage builds
- Rootless — runs as UID 1000 with minimal capabilities (
SETUID/SETGID only for user namespace operations)
- Reproducible builds — native support for supply chain security
- Attestation & signing — built-in SBOM, provenance, and Cosign integration
- Cache support — registry and local caching
Implementation Notes
A working Tekton Task has been prototyped and tested on kind. Key workarounds needed:
/tmp/run directory — BuildKit rootless requires this; solved with an emptyDir volume at /tmp and a prepare step running mkdir -p /tmp/run
- Context path validation — Kimia validates the build context is under
/home/kimia; solved by copying the source workspace into /home/kimia/build via a prepare step
- Security context — requires
allowPrivilegeEscalation: true with SETUID/SETGID capabilities and Unconfined AppArmor/seccomp profiles for user namespace operations
Proposed Task interface
params:
- IMAGE # destination image reference
- DOCKERFILE # path to Dockerfile (default: Dockerfile)
- CONTEXT # build context relative to workspace (default: .)
- EXTRA_ARGS # extra kimia flags (array)
- BUILDER_IMAGE # kimia image (default: ghcr.io/rapidfort/kimia:latest)
workspaces:
- source # build context with Dockerfile
- dockerconfig # optional registry auth
results:
- IMAGE_DIGEST
- IMAGE_URL
Related
Summary
Kimia is a Kubernetes-native OCI image builder that uses BuildKit under the hood. It is an actively maintained alternative to Kaniko with features like reproducible builds, SBOM/provenance attestation, and Cosign signing built-in.
Motivation
The catalog currently has a
kanikotask but Kaniko has had limited maintenance activity. Kimia provides a modern alternative with:SETUID/SETGIDonly for user namespace operations)Implementation Notes
A working Tekton Task has been prototyped and tested on kind. Key workarounds needed:
/tmp/rundirectory — BuildKit rootless requires this; solved with anemptyDirvolume at/tmpand a prepare step runningmkdir -p /tmp/run/home/kimia; solved by copying the source workspace into/home/kimia/buildvia a prepare stepallowPrivilegeEscalation: truewithSETUID/SETGIDcapabilities andUnconfinedAppArmor/seccomp profiles for user namespace operationsProposed Task interface
Related