Hacker News
Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev
sandGorgon
|next
[-]
It takes ur standard docker compose file and runs it transparently in kubernetes (k3s actually). So ur devs don't have cognitive dissonance between testing ur stack locally on ur laptop and making it work on kubernetes in production.
It is primarily meant as a dev tool on ur laptop, and as a replacement for docker compose.
SOLAR_FIELDS
|root
|parent
[-]
sandGorgon
|root
|parent
[-]
NOTE: kubedock has some automatic compatibility with compose, this is not their goal - https://github.com/joyrex2001/kubedock/blob/e4c8540f63d65e33...
If you are not on the compose ecosystem, this is isnt useful to you.
Just fyi - the hottest thing in the world right now is OpenClaw. This is OpenClaw docker compose yml - https://github.com/openclaw/openclaw/blob/main/docker-compos...
even if you dont do docker compose....everyone else does it anyway.
nkmnz
|next
|previous
[-]
bewuethr
|root
|parent
|next
[-]
nkmnz
|root
|parent
[-]
SOLAR_FIELDS
|root
|parent
|next
[-]
It is worth noting that Kubedock has some really annoying limitations, part of it is that it’s one person the other part is that some concepts don’t translate to kube very well. So make sure that whatever you will be doing fits into those constraints before you try it
mlnj
|root
|parent
|previous
[-]
With a single Tilt file combined with a docker compose file, almost all of the infrastructure you need is configured on a local machine. It also supports running kubernetes (most of the docs are around this), but you do not necessarily need to it it.My goto when I have more then 2 docker containers/services I want to keep changing code for. Some teams I work with usually have 20 such containers for local dev.
And yes, you can even nest Tilt files and even write normal python if you want to mix things up.
sandGorgon
|root
|parent
|previous
[-]
nkmnz
|root
|parent
[-]
sandGorgon
|root
|parent
[-]
Also, btw - kappal is architected AI first. Meaning: 1. we have a beautiful skill that can be used by Claude 2. The help command generates output that is useful for claude 3. we have a "kappal inspect" command that generates live output of the stack that can be used by Claude.
hope you have a great time using it. Please file bugs!
moondev
|next
|previous
[-]
Start a privileged pod with the dind image, copy or mount your compose.yaml inside and you should be able to docker compose up and down, all without mounting a socket (that won't exist anyway on containerd CRI nodes)
To go even further, kubevirt runs on kind, launch a VM with your compose file passed in via cloud-init.
sandGorgon
|root
|parent
[-]
At no point, have I invented a new/better method. Perhaps your way is better.
I just recognise that Docker Compose is loved by most open source developers. And invariably any project you touch will have a docker compose setup by default. And it isnt going away, no matter hard anyone tries to kill. Some things are just too well designed. Docker Compose is one of those things.
I'm just making it possible to run those on kubernetes seamlessly.
osigurdson
|next
|previous
[-]
SOLAR_FIELDS
|root
|parent
|next
[-]
In my ideal world everyone would use kubernetes, it is the hammer and everything is a nail, but we must recognize that it is difficult for a lot of people to pick up.
That being said, if you’re deploying on kube in production, use kube locally. But if you’re not, dont
osigurdson
|root
|parent
[-]
sandGorgon
|root
|parent
[-]
I'm not arguing for the relative superiority of jsonnet vs yaml vs anything else. I just recognise that Docker Compose is loved by most open source developers. And invariably any project you touch will have a docker compose setup by default.
I'm just making it possible to run those on kubernetes seamlessly.
philipallstar
|next
|previous
[-]
sandGorgon
|root
|parent
[-]
the standard does not make it mandatory that underlying system should be docker compose (the reference server). it can be anything.
IMHO - kappal is the first project that takes your compose yml file and transparently/drop-in runs it on kubernetes. there is nothing extra you need. It is useful for people who want to maintain their stack as close to production as possible (kubernetes).
If that's not a big goal for you, then this is not very useful for you. But I'd argue ...why do you care if the compose yml is the only think you are using. you get all of kubernetes.
wanderingbit
|next
|previous
[-]
I was just telling some ex coworker friends that there was a great need for a compose frontend to more powerful infra backends, and this feels like the answer.
Once I get working on it I’ll try to add health check support. That is crucial for a lot of what we’re working on.
rirze
|next
|previous
[-]
rvz
|next
|previous
[-]
So is any of this tested?