Skip to content

Add Kimia (Kubernetes-Native OCI Image Builder) Task #1374

Description

@vdemeester

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:

  1. /tmp/run directory — BuildKit rootless requires this; solved with an emptyDir volume at /tmp and a prepare step running mkdir -p /tmp/run
  2. 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
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions