Kapitan FAQ
Why do I need Kapitan?
See the blog post Why do I need Kapitan? for a detailed explanation of the problems Kapitan solves, including configuration sprawl, duplication across environments, and secrets management.
What is the Kapitan inventory?
The inventory is a hierarchical YAML structure that captures all the data you want to make available to Kapitan's templating engines. It is divided into targets (environments or deployments) and classes (reusable configuration fragments). Learn more in the inventory introduction.
How do I install Kapitan?
The easiest way is via Docker:
docker run -t --rm -v $(pwd):/src:delegated kapicorp/kapitan -h
Or install with pip:
pip3 install --user --upgrade kapitan
See the Getting Started page for full installation instructions.
Which input type should I use?
It depends on your use case:
- Jsonnet — structured data, Kubernetes manifests, JSON Schema validation
- Jinja — scripts, documentation, text templates
- Kadet — Python-based generation, reusable libraries
- Helm — rendering existing Helm charts
- Kustomize — patching Kubernetes manifests
- CUE — typed configuration with validation
How does Kapitan manage secrets?
Kapitan uses References (formerly Secrets) to manage sensitive and dynamic values. Supported backends include GPG, AWS KMS, GCP KMS, Azure Key Vault, HashiCorp Vault, and plain/base64 for non-sensitive data. See the References documentation for setup instructions.
What is parameter interpolation?
Parameter interpolation lets you reference values defined elsewhere in the inventory using the ${variable:name} syntax. This reduces duplication and makes configuration more maintainable. Read the parameter interpolation guide for details.
How do I compile a target?
kapitan compile -t <target_name>
Without a target flag, Kapitan compiles all discovered targets. See the kapitan compile CLI reference for all options.
Where can I find examples?
The kapicorp/kapitan-reference repository contains working examples for Kubernetes, Terraform, and more. You can also explore the input type documentation for small, focused examples.
Ask your question
Please use the comments facility below to ask your question.