Kompose

kompose is a tool to help users familiar with docker-compose move to Kubernetes. It takes a Docker Compose file and translates it into Kubernetes resources.

View the Project on GitHub kubernetes/kompose

Watch Star Fork

Conversion Matrix

This document outlines all possible conversion details regarding docker-compose.yaml values to Kubernetes / OpenShift artifacts. This includes version 1, 2 and 3 of Docker Compose.

Value Support K8s / OpenShift Notes
SERVICE      
build Y OpenShift: BuildConfig Converts, but local builds are not yet supported. See issue 97
cap_add, cap_drop Y Pod.Spec.Container.SecurityContext.Capabilities.Add/Drop  
command Y Pod.Spec.Container.Command  
cgroup_parent N   No compatibility with Kubernetes / OpenShift. Limited use-cases with Docker.
container_name Y Mapped to both Metadata.Name and Deployment.Spec.Containers.Name  
deploy N   Upcoming support started
devices N   Not supported within Kubernetes, see this issue
depends_on N    
dns N    
dns_search N    
tmpfs Y Pod.Spec.Containers.Volumes.EmptyDir Creates emptyDirvolume with medium set to Memory & mounts given directory inside container
entrypoint Y Pod.Spec.Container.Command Same as command
env_file N    
environment Y Pod.Spec.Container.Env  
expose Y Service.Spec.Ports  
extends Y   Extends by utilizing the same image supplied
external_links N    
extra_hosts N    
group_add N    
healthcheck N    
image Y Deployment.Spec.Containers.Image  
isolation N    
labels Y Metadata.Annotations  
links N    
logging N    
network_mode N    
networks N    
pid Y Pod.Spec.HostPID  
ports Y Service.Spec.Ports  
security_opt N    
stop_grace_period Y Pod.Spec.TerminationGracePeriodSeconds  
stop_signal N    
sysctls N    
ulimits N   See this issue on the k8s repo
userns_mode N    
volumes Y PersistentVolumeClaim Creates a PersistentVolumeClaim. Can only be created if there is already a PersistentVolume within the cluster
volume_driver N    
volumes_from Y PersistentVolumeClaim Creates a PersistentVolumeClaim that is both shared by deployment and deployment config (OpenShift)
cpu_shares N    
cpu_quota N    
cpuset N    
mem_limit Y …Containers.Resources.Limits.Memory  
memswap_limit N   Use mem_limit
       
VOLUME      
driver N    
driver_opts N    
external N    
labels N    
       
NETWORK      
driver N    
driver_opts N    
enable_ipv6 N    
ipam N    
internal N    
labels N    
external N