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-incubator/kompose

Watch Star Fork

Conversion reference

This document outlines all the conversion details regarding docker-compose.yaml values to Kubernetes / OpenShift artifacts.

Value Ver. Support K8s / OpenShift Notes
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 v3 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 emptyDir volume 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 v2 Y   Extends by utilizing the same image supplied
external_links   N    
extra_hosts   N    
group_add   N    
healthcheck v2.1/v3 N    
image   Y Deployment.Spec.Containers.Image  
isolation   N    
labels   Y Metadata.Annotations  
links   N    
logging   N    
network_mode   N    
networks   N    
pid   N    
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 v2 N    
volumes_from v2 Y PersistentVolumeClaim Creates a PersistentVolumeClaim that is both shared by deployment and deployment config (OpenShift)
cpu_shares v2 N    
cpu_quota v2 N    
cpuset v2 N    
mem_limit v2 Y …Containers.Resources.Limits.Memory  
memswap_limit v2 N   Use mem_limit
driver   N    
driver_opts   N    
external   N    
labels   N    
driver   N    
driver_opts   N    
enable_ipv6   N    
ipam   N    
internal   N    
labels   N    
external   N