Katenary

Effortless Helm Chart Conversion for Kubernetes Deployments

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.

Katenary Workflow

Almost everything can be overriden as Ingresses, Dependencies, values, environment variables, secrets...

  1. Add optional labels to your Compose files.
  2. Run katenary convert from the command line.
  3. 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)

Go to GitHub