An opinionated way of deploying docker-compose to kubernetes clusters by managing them with a helm chart.
Project description
kube-compose
An opinionated way of deploying docker-compose to kubernetes clusters by managing them with a helm chart.
The CLI is intended to be easy to use for those familiar with docker-compose and includes some additional features. Basically all features expect you to have a docker-compose.yaml
file in the working directory.
kube-compose init
=> specify the helm release name/namespace in yourdocker-compose.yaml
file- docker-compose-like features
kube-compose up
=>helm install/upgrade
+ volume create (pvc)kube-compose down
=>helm uninstall
kube-compose ps
=>helm status
kube-compose logs SERVICE
=>kubectl logs
kube-compose exec SERVICE
=>kubectl exec
kube-compose restart SERVICE
=>kubectl rollout restart
- additional features
kube-compose volume ...
=> manage docker-compose defined volumes as persistent volume claimskube-compose volume create [VOLUME]
=> create the claim(s)kube-compose volume rm [VOLUME]
=> delete the claim(s)
kube-compose diff
=>diff -Naur <(helm get values) <(docker-compose config)
kube-compose version SERVICE [<newversion> | major | minor | patch]
=> like npm version but for services in the docker-compose.yaml
Pre-requisites
- kubernetes cluster
- kubectl
- helm
Installation
# install off of pypi
pip install kube-compose
# verify install was successful
kube-compose --help
End-to-end Example with K3D
# launch a test kubernetes cluster
k3d cluster create -a1 -p "80:80@loadbalancer" -p "443:443@loadbalancer"
# one option for auto-creating Ingress resources from annotations on the deployment
helm repo add maayanlab https://maayanlab.github.io/helm-charts
helm install kubernetes-auto-ingress maayanlab/kubernetes-auto-ingress --set ingressClassName=traefik
# create the docker-compose.yaml
cat > docker-compose.yaml << EOF
version: '3'
x-kubernetes:
# this is the helm chart release name and namespace
name: test
namespace: default
services:
# a deployment is created with this name
test-web:
image: nginx:latest
ports:
# a service is created exposing this port
- 80
x-kubernetes:
# these are the kubernetes annotations added to the deployment
annotations:
# this annotation causes a ingress to be created for the deployment
maayanlab.cloud/ingress: http://localhost
EOF
# start the docker-compose service(s) on the kubernetes cluster
kube-compose up
# verify it's running at http://localhost
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
kube_compose-0.2.0.tar.gz
(13.5 kB
view hashes)
Built Distribution
Close
Hashes for kube_compose-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96eaa262c43b6436817f425088ec2a9f6248d67c8648eb20c28093a15daccf43 |
|
MD5 | a57e426cd617e02519ab3bc8a03bb125 |
|
BLAKE2b-256 | d4e26b9398941450460245e5baa30a2ffc8da734c527bfc3cf0cc715e4ce0ad1 |