Skip to content

Kubernetes Resource Handling

Tools and frameworks for templating, composing, and managing Kubernetes resources.

Templating and manifest generation

Helm

The most widely adopted Kubernetes package manager. Helm uses Go templates to generate Kubernetes manifests from reusable charts, supporting versioned releases and rollbacks.

Kustomize

A template-free approach to Kubernetes manifest customization. Kustomize uses overlays and patches to transform base manifests without modifying the originals, and is built into kubectl.

ytt

A YAML-aware templating tool from the Carvel project. ytt uses Starlark (a Python dialect) for overlay logic while keeping YAML structure intact, avoiding the whitespace pitfalls of text-based templating.

Jsonnet / Tanka

Grafana Tanka uses Jsonnet, a data templating language, to generate Kubernetes manifests. More expressive than YAML but with a steeper learning curve.

cdk8s

AWS CDK for Kubernetes. Define manifests using TypeScript, Python, Go, or Java. Useful if you prefer general-purpose languages over YAML.

CUE / Timoni

CUE is a data validation and configuration language that can generate, validate, and constrain Kubernetes manifests with strong type checking. Timoni builds on CUE as a package manager for Kubernetes from the Flux ecosystem, similar to Helm but with CUE instead of Go templates.

KCL

Kusion Configuration Language. A CNCF project for writing and validating Kubernetes configs with a purpose-built language.

Dhall

A programmable, typed configuration language that can target Kubernetes YAML with built-in imports and guarantees about termination.

Resource composition and abstraction

Crossplane Composite Resources

Crossplane XRDs and Compositions allow platform teams to define higher-level abstractions that provision both Kubernetes and cloud-provider resources through a single API object.

Kro

Kro (Kubernetes Resource Orchestrator) lets you define custom groups of Kubernetes resources as a single logical unit using ResourceGroups, simplifying complex multi-resource deployments.

Metacontroller

A lightweight framework for writing custom controllers using simple webhooks instead of full operator SDKs. Enables resource composition with minimal boilerplate.

YAML and JSON processing

yq

A lightweight command-line YAML processor for reading, writing, and manipulating YAML files. Useful for scripting Kubernetes manifest transformations and extracting values from resource definitions.

jq

The JSON equivalent of yq. Often used with kubectl -o json output for querying and transforming Kubernetes resource data in scripts.