Skip CNCF Sandbox App Definition and Development / Application Definition & Image Build

Technology Guide

Carvel

License: Apache-2.0

Carvel Logo

Field Guide

Complete Guide

Carvel is a suite of single-purpose Unix-style CLI tools for configuring, packaging, and deploying applications to Kubernetes. It came out of VMware Tanzu (originally as k14s) and is a deliberate alternative to the “one big tool” approach of Helm: each Carvel tool does one job, reads and writes plain files, and composes with the others through pipes.

The core tools are ytt, a YAML templating language based on Starlark that operates on parsed YAML documents instead of raw text (so you can’t generate invalid YAML by accident); kapp, a deployer that computes a diff between a set of manifests and live cluster state, groups resources into a labeled “app”, orders changes by type, and waits on readiness — effectively a safer kubectl apply; kbld, which resolves image references to immutable digests and rewrites manifests accordingly; imgpkg, which bundles a directory of configuration plus all the images it references into a single OCI artifact; and vendir, which declaratively syncs external sources (Git repos, Helm charts, HTTP tarballs) into a vendor/ directory. kapp-controller runs the same machinery inside a cluster as a GitOps-style operator with App and PackageInstall CRDs.

Carvel joined the CNCF sandbox in 2022. In practice it sits alongside Helm and Kustomize as a third option for Kubernetes configuration: you reach for it when you’ve been burned by Helm’s text-based templating or want a stricter, more auditable pipeline from source YAML to live cluster. It’s the packaging system underneath Tanzu Kubernetes Grid and Tanzu Community Edition.

CNCF Project

Cloud Native Computing Foundation

Accepted: 2022-09-14

Community

Join the conversation

No articles found for Carvel yet. Check back soon!