Metadata-Version: 2.4
Name: kapitan
Version: 0.35.2.dev14
Summary: Generic templated configuration management for Kubernetes, Terraform and other things
Project-URL: Homepage, https://kapitan.dev
Project-URL: Repository, https://github.com/kapicorp/kapitan
Project-URL: Documentation, https://kapitan.dev/
Author-email: Ricardo Amaro <ramaro@kapicorp.com>
License-Expression: Apache-2.0
License-File: AUTHORS
License-File: LICENSE
Keywords: jinja,jsonnet,kubernetes,reclass
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: <3.15,>=3.10
Requires-Dist: addict<3,>=2.4.0
Requires-Dist: azure-identity<2,>=1.12.0
Requires-Dist: azure-keyvault-keys<5,>=4.7.0
Requires-Dist: boto3<2,>=1.18.17
Requires-Dist: cachetools<8.0.0,>=7.0.1
Requires-Dist: certifi
Requires-Dist: copier<10,>=9.3.1
Requires-Dist: cryptography<47.0.0,>=3.4.7
Requires-Dist: filetype<2,>=1.2.0
Requires-Dist: gitdb<5,>=4.0.10
Requires-Dist: gitpython<4,>=3.1.30
Requires-Dist: google-api-python-client<3,>=2.15.0
Requires-Dist: hvac==2.4.0
Requires-Dist: jinja2<4,>=3.0.1
Requires-Dist: jsonnet<0.22,>=0.21.0
Requires-Dist: jsonpath-ng<2,>=1.7.0
Requires-Dist: jsonschema<5,>=4.17.3
Requires-Dist: kadet<0.4,>=0.3.0
Requires-Dist: kapicorp-reclass>=2.0.0
Requires-Dist: packaging<26,>=23
Requires-Dist: pydantic-settings<3,>=2.4.0
Requires-Dist: pydantic<3,>=2.8.2
Requires-Dist: python-box<8,>=7.2.0
Requires-Dist: python-gnupg<0.6.0,>=0.4.7
Requires-Dist: pyyaml~=6.0
Requires-Dist: regex<2025,>=2024.5.10
Requires-Dist: requests<3,>=2.28.2
Requires-Dist: strenum<0.5,>=0.4.15; python_version ~= '3.10'
Requires-Dist: toml<0.11,>=0.10.2
Requires-Dist: typing-extensions<5,>=4.0.0
Requires-Dist: yamllint<2,>=1.29.0
Provides-Extra: gojsonnet
Requires-Dist: gojsonnet<0.22,>=0.21.0; extra == 'gojsonnet'
Provides-Extra: oci
Requires-Dist: oras>=0.2.0; extra == 'oci'
Provides-Extra: omegaconf
Requires-Dist: omegaconf<3,>=2.4.0.dev3; extra == 'omegaconf'
Provides-Extra: rapidyaml
Requires-Dist: rapidyaml<1,>=0.12; extra == 'rapidyaml'
Provides-Extra: reclass-rs
Requires-Dist: reclass-rs<0.11.0,>=0.10.1; extra == 'reclass-rs'
Description-Content-Type: text/markdown

# Kapitan: Configuration Management for Kubernetes, Terraform, and Infrastructure

[![Test, Build and Publish docker image](https://github.com/kapicorp/kapitan/actions/workflows/test-build-publish.yml/badge.svg?branch=master&event=push)](https://github.com/kapicorp/kapitan/actions/workflows/test-build-publish.yml)
![Python Version](https://img.shields.io/pypi/pyversions/kapitan)
![Downloads](https://img.shields.io/pypi/dm/kapitan)
![Docker Pulls](https://img.shields.io/docker/pulls/kapicorp/kapitan)
[![Releases](https://img.shields.io/github/release/kapicorp/kapitan.svg)](https://github.com/kapicorp/kapitan/releases)
[![Docker Image Size](https://img.shields.io/docker/image-size/kapicorp/kapitan/latest.svg)](https://hub.docker.com/r/kapicorp/kapitan)

<img src="docs/images/kapitan_logo.png" width="25" alt="Kapitan logo">

**Kapitan** is an open source configuration management tool for **Kubernetes**, **Terraform**, and complex infrastructure systems. It helps teams generate, organize, reuse, and validate configuration across environments using an **inventory-driven model**, templates (**Jsonnet**, **Jinja2**, **Kadet**), and integrations with **Helm**, **Kustomize**, **CUE**, and external references.

Kapitan provides native **secrets management** (GPG, AWS KMS, GCP KMS, Azure Key Vault, HashiCorp Vault) and is designed for **Platform Engineering** and **GitOps** workflows.

- **Documentation**: <https://kapitan.dev>
- **Community**: [`#kapitan`](https://kubernetes.slack.com/archives/C981W2HD3) on Kubernetes Slack
- **Quick Start**: <https://kapitan.dev/getting_started/>

## What is Kapitan?

Kapitan lets you model infrastructure configuration with reusable **inventory classes** and **targets**, then compile that data into manifests, scripts, documentation, and Terraform resources. Instead of copying values across Helm values files, Kustomize overlays, and Terraform variables, you define everything once in the Kapitan inventory and let each input type generate the files it needs.

## Install Kapitan

### Docker (recommended)

```shell
docker run -t --rm -v $(pwd):/src:delegated kapicorp/kapitan -h
```

On Linux you can add `-u $(id -u)` to `docker run` to preserve file permissions.

### Pip

Kapitan needs Python 3.10 or newer.

#### Install Python 3

* Linux: `sudo apt-get update && sudo apt-get install -y python3-dev python3-pip python3-yaml git`
* Mac: `brew install python3 libyaml git`

#### Install Kapitan

User (`$HOME/.local/lib/python3.x/bin` on Linux or `$HOME/Library/Python/3.x/bin` on macOS):

```shell
pip3 install --user --upgrade kapitan
```

System-wide (not recommended):

```shell
sudo pip3 install --upgrade kapitan
```

## Build Kapitan

### Docker

To build a docker image for the architecture of your machine, run `docker build . -t you-kapitan-image`, and to build for a specific platform, add `--platform linux/arm64`.

To build a multi-platform image (as the CI does), follow [the docker multi-platform documentation](https://docs.docker.com/build/building/multi-platform/).

To build a docker image using a specific python version, run `docker build --build-arg PYTHON_BUILDER_VERSION=<python-version> . -t you-kapitan-image`. By default the Dockerfile is pinned using python 3.11 as the python builder version.

## Related projects

* [Tesoro](https://github.com/kapicorp/tesoro) - Kubernetes Admission Controller for Kapitan Secrets
* [Kapitan Reference](https://github.com/kapicorp/kapitan-reference) - our reference repository to get started with Kapitan
