Why Katenary?
Simplify your deployment workflow by converting Compose files into production-ready Helm Charts with ease.
Automated Conversion
Generate complete Helm Charts from your Compose files effortlessly.
Flexible Configuration
Customize deployments with `values.yaml` and environment labels.
Dependency Management
Ensure proper service startup sequences using `depends_on` support.
Open Source
Free, opensource, under the MIT license!
How It Works
Katenary simply read your compose.yaml
file (or docker-compose.yaml
) and use official libraries to read it and generate Kubernetes resources as YAML.
Then, it adds templating conditions, values file, define a Chart.yaml
file, adapt dependencies if needed, and many others things.
Using configuration files to be mounted? No problem, Katenary will create ConfigMaps
if you declared that thes directories or files are statics.
(Do not do this for sources of your project, use it for simple configuration files)
The result is a complete "Helm Chart" that can be installed, configured, packaged and shared.
Almost everything can be overriden as Ingresses, Dependencies, values, environment variables, secrets...
- Add optional labels to your Compose files.
- Run
katenary convert
from the command line. - Deploy the generated Helm Chart in Kubernetes.
How to use?
Install the binary, and use katenar convert
command line inside your project directory
You can adapt your compose YAML file with labels, or add a compose.katenary.yaml
file to override your project.
You may also use a specific katenary.yaml
file that accepts the directives without using labels.
Only add labels! (if needed!)
You can adapt, configure, or change the conversion behaviour addind labels.
It doesn't change the docker compose
or podman compose
behaviour. It is only used while using katenary compose
command line
There are plenty of labels to help you to customize and adapt the resulting Helm Chart.
# your "docker-compose.yml", or "compose.yaml"
services:
web:
image: docker.io/nginx:latest
ports:
- "80:80"
labels:
# generate an ingress resource in the Helm Chart
katenary.io/ingress: |-
hostname: example.com
port: 80
Ease the deployment
Kubernetes somtimes lacks of automation. Katenary helps you to add what is needed, like having a depends_on
feature.
# your "docker-compose.yml", or "compose.yaml"
services:
db:
image: docker.io/postgres:latest
# ...
labels:
katenary.v3/ports: |-
- 5432
web:
image: php:fpm
# ...
depends_on:
- db
Watch the Tutorials
A playlist is progressivelly filled to help the Katenary adoption. Take a look and learn how it is simple.
Get Started
Download Katenary’s binary and start using it today.
sh <(curl -sSL https://raw.githubusercontent.com/metal3d/katenary/master/install.sh)