Skip to content

Kubernetes Kompose

Convert Docker compose artifacts into container orchestrator manifests.

The Makester kompose subsystem leverages Kubernetes kompose that provides tooling to assist in migrating Docker compose files to Kubernetes manifests.

The Makester kompose subsystem is an optional facility as it requires binaries that you will need to install yourself. In the case of Kubernetes kompose, you can get the link to the installation notes with:

make print-MAKESTER__KOMPOSE_EXE_INSTALL
MAKESTER__KOMPOSE_EXE_INSTALL=https://kompose.io/installation/
Makester will not stop you from exploring the kompose subsystem. However, if you attempt to invoke a target that requires a missing binary then you will receive an error. Makester will try to guide you along the way with detailed messages where possible. For example:
### MAKESTER__KOMPOSE: <undefined>
### MAKESTER__KOMPOSE_EXE_NAME set as "kompose"
### "kompose" not found
### Install notes: https://kompose.io/installation/
makefiles/kompose.mk:18: *** ###.  Stop.

The Makester kompose subsystem help lists the available commands:

make kompose-help

Command Reference

Translate Docker Compose to Kubernetes Manifests

make kompose

Variables

MAKESTER__KOMPOSE_EXE_NAME

The name of the binary Makester will search for in your PATH (defaults to kompose).

MAKESTER__KOMPOSE_EXE_NAME can be overridden if you have special requirements, or want to use a kompose executable that is not in your PATH. Just set MAKESTER__KOMPOSE_EXE_NAME to your prefered value in your Makefile:

MAKESTER__KOMPOSE_EXE_NAME := /opt/kompose/bin/kompose

MAKESTER__KOMPOSE_EXE_INSTALL

URL link that provides the instructions for installing the kompose binary. To print the URL link:

make print-MAKESTER__KOMPOSE_EXE_INSTALL

MAKESTER__KOMPOSE

The path to the kompose binary as determined by Makester. Use MAKESTER__KOMPOSE for custom kompose commands in your own Makefile.

Note

Override MAKESTER__KOMPOSE has no effect as it is dynamically generated by Makester based on the value of MAKESTER__KOMPOSE_EXE_NAME.

MAKESTER__COMPOSE_K8S_EPHEMERAL

Optionally specify the location of your project's docker-compose.yml (defaults to docker-compose.yml at the top level of the project).

MAKESTER__K8S_MANIFESTS

Kubernetes manifest target output (defaults to <MAKESTER__WORK_DIR>/k8s/manifests).


top