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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions