Natively support Compose files on Kubernetes

December 7, 2018 ยท View on GitHub

These are the Compose file features supported on Kubernetes

Featuredocker stack deployCompose on Kubernetes
build
- context
- dockerfile
- args
- cache_from
- labels
cap_addYes
cap_dropYes
commandYesYes
configsYesYes
- externalYesYes
- fileYesYes
- modeYesYes
cgroup_parent
container_name
credential_specYes
deployYes
- endpoint_mode: vipYesYes
- endpoint_mode: dnsrrYes
- labelsYesYes
- modeYesYes
- placementYesPartial
- replicasYesYes
- resourcesYesYes
-- limitsYesYes
-- reservationsYesYes
- restart_policyYesYes
-- condition: noneYesYes
-- condition: on-failureYesYes
-- condition: anyYesYes
-- delayYes
-- max_attemptsYes
-- windowYes
- update_configYes
-- parallelismYesYes
-- delayYes
-- failure_actionYes
-- monitorYes
-- max_failure_ratioYes
- devices
- depends_on
- dns
- dns_search
- tmpfsYes
- entrypointYesYes
- env_fileYesYes
- environmentYesYes
-- key=valueYesYes
-- keyYes
- exposeYesYes
- external_links
- extra_hostsYesYes
- healthcheckYesYes
-- testYesYes
-- test: NONEYesYes
-- intervalYesYes
-- timeoutYesYes
-- retriesYesYes
-- disableYesYes
- imageYesYes
- isolationYes
- labelsYesYes
- links
- loggingYes
-- driverYes
-- optionsYes
- network_mode
- networksYes
-- aliasesYes
-- ipv4_addressYes
-- ipv6_addressYes
- pid: hostYesYes
- portsYesYes
-- targetYesYes
-- publishedYesYes
-- protocolYesYes
-- mode: hostYesNot sure
-- mode: ingressYesNot sure
- secretsYesYes
-- sourceYesYes
-- targetYesYes
-- uidYes
-- gidYes
-- modeYesYes
- security_opt
- stop_grace_periodYesYes
- stop_signal
- sysctls
- ulimits
- userns_mode
- volumesYesYes
-- type: volumeYesYes
-- type: bindYesYes
-- sourceYesYes
-- targetYesYes
-- read_onlyYesYes
-- bind/propagationYes
-- volume/nocopyYes
- restart
- domainname
- hostnameYesYes
- ipcYes
- mac_address
- privilegedYes
- read_onlyYesYes
- shm_size
- stdin_openYesYes
- ttyYesYes
- user: numericalYesYes
- user: nameYes
- working_dirYesYes

Not supported by k8s

Placeholders interpolation

Before a yaml file is sent to Kubernenetes, its ${...} placeholders are replaced with actual values.

  • A first attempt is made at reading the variable from a .env file is current working directory.
  • If no value is found, an environment variable are used.