Deploys and scales containerised apps across your own Docker hosts over a WireGuard mesh, without Kubernetes or Swarm.
kubernetes/kompose
A CLI tool that converts Docker Compose files into Kubernetes deployment and service manifests.
- Stars
- 10,643
- Forks
- 818
- Open issues
- 18
- Last commit
- 8 hours ago
What is it?
Kompose helps developers who already use docker-compose move their applications to Kubernetes. It reads a Compose Specification file and translates the services into Kubernetes resources such as Deployments and Services, writing each as a separate YAML file with a single command.
The conversion is a starting point rather than an exact one-to-one mapping, since some Compose features do not map directly onto Kubernetes. It is aimed at the first step of getting a local Compose setup running on a cluster, after which the generated manifests can be refined by hand. Kompose is written in Go and distributed as a binary for Linux, macOS, and Windows, with shell completion for Bash, Zsh, and Fish.
Key features
- 01Converts Compose Specification files into Kubernetes Deployments and Services.
- 02Writes each generated resource to its own YAML file.
- 03Distributed as a single binary for Linux, macOS, and Windows.
- 04Provides shell autocompletion for Bash, Zsh, and Fish.
Use cases
- Moving a local docker-compose application onto a Kubernetes cluster.
- Generating a first draft of Kubernetes manifests from an existing Compose file.
- Teams that keep development environments in Compose and want a deployment path to Kubernetes.
Quick start
- 1
Download the kompose binary from the latest GitHub release
- 2
Make the binary executable and move it onto your PATH
chmod +x kompose sudo mv ./kompose /usr/local/bin/kompose - 3
Convert your Compose file into Kubernetes manifests
kompose convert -f compose.yaml
Things to know
- Conversion from Compose to Kubernetes may not be exact and often needs manual adjustment.
- Installation via the preferred binary route requires manual download and PATH setup.
In collections
Topics
FAQ
- What is kompose?
- A CLI tool that converts Docker Compose files into Kubernetes deployment and service manifests. Kompose helps developers who already use docker-compose move their applications to Kubernetes. It reads a Compose Specification file and translates the services into Kubernetes resources such as Deployments and Services, writing each as a separate YAML file with a single command.
- Is kompose free to use? What license does it have?
- kompose is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is kompose still maintained?
- Actively maintained. The last commit to kompose was on Nov 6, 2026.
- What can I use kompose for?
- Moving a local docker-compose application onto a Kubernetes cluster. Generating a first draft of Kubernetes manifests from an existing Compose file. Teams that keep development environments in Compose and want a deployment path to Kubernetes.
- How do I install kompose?
- Download the kompose binary from the latest GitHub release Make the binary executable and move it onto your PATH: chmod +x kompose sudo mv ./kompose /usr/local/bin/kompose Convert your Compose file into Kubernetes manifests: kompose convert -f compose.yaml
- Where can I get kompose?
- The source code and installation instructions are on GitHub: https://github.com/kubernetes/kompose
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A CLI tool for defining and running multi-container Docker applications from a single Compose file.
A free, community-maintained collection of hands-on Docker tutorials and labs for beginner, intermediate and advanced learners.
A lightweight way to run Docker, containerd, or Incus containers on macOS and Linux with minimal setup.
Open source container management platform for running Kubernetes clusters across many environments in production.
An enterprise-grade cloud-native application platform for Kubernetes covering DevOps, microservice governance, and multi-cloud management.