9 comments

  • sandGorgon3 days ago
    This is a personal project that im open-sourcing. Its one of those projects-that-should-exist-but-nobody-wants-to-kill-their-business.<p>It takes ur standard docker compose file and runs it transparently in kubernetes (k3s actually). So ur devs don&#x27;t have cognitive dissonance between testing ur stack locally on ur laptop and making it work on kubernetes in production.<p>It is primarily meant as a dev tool on ur laptop, and as a replacement for docker compose.
    • SOLAR_FIELDS10 hours ago
      Compare&#x2F;contrast with kubedock? It is almost exactly same project as your description from what I can tell
      • sandGorgon5 hours ago
        kubedock is its own command set. it doesnt work with compose.yml . This project specifically starts with a compose file.<p>NOTE: kubedock has some automatic compatibility with compose, this is not their goal - <a href="https:&#x2F;&#x2F;github.com&#x2F;joyrex2001&#x2F;kubedock&#x2F;blob&#x2F;e4c8540f63d65e331668dd7097e8508e54a801ad&#x2F;examples&#x2F;docker-compose&#x2F;README.md?plain=1#L3" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;joyrex2001&#x2F;kubedock&#x2F;blob&#x2F;e4c8540f63d65e33...</a><p>If you are not on the compose ecosystem, this is isnt useful to you.<p>Just fyi - the hottest thing in the world right now is OpenClaw. This is OpenClaw docker compose yml - <a href="https:&#x2F;&#x2F;github.com&#x2F;openclaw&#x2F;openclaw&#x2F;blob&#x2F;main&#x2F;docker-compose.yml" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;openclaw&#x2F;openclaw&#x2F;blob&#x2F;main&#x2F;docker-compos...</a><p>even if you dont do docker compose....everyone else does it anyway.
  • nkmnz17 hours ago
    Could I use this for running the same docker compose stack multiple times in parallel? I wrote a lot of bash glue code to make this happen (without kubernetes) for integration and acceptance testing on a single server. Managing envs and networking was a pain, but mostly, I struggle to keep it up to date with infrastructure changes in my platform.
    • bewuethr17 hours ago
      Have you tried Tilt? <a href="https:&#x2F;&#x2F;tilt.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;tilt.dev&#x2F;</a>
      • nkmnz16 hours ago
        No, I haven&#x27;t. Can you elaborate how you think it could help me? Couldn&#x27;t figure it out from reading the docs, tbh.
        • SOLAR_FIELDS10 hours ago
          Tilt is great but it doesn’t solve the problem you’re asking about. This project more directly addresses that. Fundamentally the problem is that you want to maintain the lifecycle of several services during an ephemeral ci run and tear them down when you are done. As you mentioned it gets unwieldy and annoying to try to run all of these on a single machine and doubly so when you have a lot of services&#x2F;containers. Kubedock is more like what you are looking for, it translates compose calls to Kube equivalents and each service in the compose file is it’s one kube pod with its own lifecycle. It should be possible under that to do what you are saying, spawn multiple docker composes from a single run.<p>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
        • mlnj16 hours ago
          I love Tilt.<p>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&#x2F;services I want to keep changing code for. Some teams I work with usually have 20 such containers for local dev.<p>And yes, you can even nest Tilt files and even write normal python if you want to mix things up.
    • sandGorgon16 hours ago
      yes. fixing this right now. you will have it in a day or two.
      • nkmnz16 hours ago
        Would certainly try this out!
        • sandGorgon5 hours ago
          this is done. Please feel free to try that.<p>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 &quot;kappal inspect&quot; command that generates live output of the stack that can be used by Claude.<p>hope you have a great time using it. Please file bugs!
  • moondev12 hours ago
    Just like KIND runs containerd inside docker, you can also run dockerd inside containerd backed pods.<p>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&#x27;t exist anyway on containerd CRI nodes)<p>To go even further, kubevirt runs on kind, launch a VM with your compose file passed in via cloud-init.
    • sandGorgon5 hours ago
      this is OpenClaw&#x27;s docker compose yml - <a href="https:&#x2F;&#x2F;github.com&#x2F;openclaw&#x2F;openclaw&#x2F;blob&#x2F;main&#x2F;docker-compose.yml" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;openclaw&#x2F;openclaw&#x2F;blob&#x2F;main&#x2F;docker-compos...</a> . Arguably the hottest thing in the world right now. Mac Minis are out of stock because of this.<p>At no point, have I invented a new&#x2F;better method. Perhaps your way is better.<p>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.<p>I&#x27;m just making it possible to run those on kubernetes seamlessly.
  • philipallstar15 hours ago
    I&#x27;m not quite sure what level of testing this facilitates. If you&#x27;re testing as close to production as possible, you probably want templated k8s config that scales down to a k8s in CI (e.g. Helm with variables applied that make it minimal). If you just want a local stack to test components and not the k8s config, why not just use docker compose itself?
    • sandGorgon14 hours ago
      docker compose is beautiful because it uses a simple elegant compose yml file - this is now an open standard. <a href="https:&#x2F;&#x2F;www.compose-spec.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.compose-spec.io&#x2F;</a><p>the standard does not make it mandatory that underlying system should be docker compose (the reference server). it can be anything.<p>IMHO - kappal is the first project that takes your compose yml file and transparently&#x2F;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).<p>If that&#x27;s not a big goal for you, then this is not very useful for you. But I&#x27;d argue ...why do you care if the compose yml is the only think you are using. you get all of kubernetes.
  • osigurdson20 hours ago
    I&#x27;ve just moved on from docker compose. Instead I have a K8s like yaml file and use podman kube play. The learning curve is pretty small in my opinion and at least it is a little closer to production.
    • SOLAR_FIELDS10 hours ago
      Great if you’re you, but try getting AverageSWE a local kube setup and see how quickly they ramp up on it<p>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.<p>That being said, if you’re deploying on kube in production, use kube locally. But if you’re not, dont
      • osigurdson9 hours ago
        Using kube in production but really, even if I wasn&#x27;t, I would still use the podman play kube approach. It isn&#x27;t hard (at all) and isn&#x27;t kubernetes, just kubernetes yaml. I actually find docker &#x2F; compose a bit harder sometimes with the daemon running in the background.
        • sandGorgon5 hours ago
          this is OpenClaw&#x27;s docker compose yml - <a href="https:&#x2F;&#x2F;github.com&#x2F;openclaw&#x2F;openclaw&#x2F;blob&#x2F;main&#x2F;docker-compose.yml" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;openclaw&#x2F;openclaw&#x2F;blob&#x2F;main&#x2F;docker-compos...</a><p>I&#x27;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.<p>I&#x27;m just making it possible to run those on kubernetes seamlessly.
    • sandGorgon16 hours ago
      fair. however, i do genuinely find docker compose yml and dev-experience to be much more pleasant and intuitive.<p>if you ever wanna try it again - use kappal. you will get a full k8s but with the UX of docker compose.
  • wanderingbit14 hours ago
    @sandGorgon8, thank you.<p>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.<p>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.
    • sandGorgon5 hours ago
      hey thanks so much !<p>just curious - i actually didnt focus on healthcheck because i wasnt sure if anyone was using it. are you using it for local dev ?
  • rirze13 hours ago
    So this uses k3s underneath. IMO any local kubernetes distribution is a big resource hog over plain docker. Anyone have ideas for something that is less resource intensive but easier to orchestrate than docker-compose?
    • jimvdv13 hours ago
      Podman supports just the pod spec also used by kubernetes. How much orchestration do you need on a local machine?
      • sandGorgon5 hours ago
        docker != docker compose.<p>docker compose is just as heavy. there&#x27;s not a significant difference between k3s and docker compose.
  • rvz18 hours ago
    Looks promising and really interesting to see and it&#x27;s a very good idea. But when I saw the test folder however, it is completely empty. [0]<p>So is any of this tested?<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;sandys&#x2F;kappal&#x2F;tree&#x2F;main&#x2F;test" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sandys&#x2F;kappal&#x2F;tree&#x2F;main&#x2F;test</a>
    • sandGorgon16 hours ago
      the test folder is for a large real project that i test on (and actually use in real life myself). it has a deliberate gitignore. plenty of tests in <a href="https:&#x2F;&#x2F;github.com&#x2F;sandys&#x2F;kappal&#x2F;tree&#x2F;main&#x2F;testdata" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sandys&#x2F;kappal&#x2F;tree&#x2F;main&#x2F;testdata</a> and <a href="https:&#x2F;&#x2F;github.com&#x2F;sandys&#x2F;kappal&#x2F;tree&#x2F;main&#x2F;scripts" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sandys&#x2F;kappal&#x2F;tree&#x2F;main&#x2F;scripts</a>
  • devcraft_ai20 hours ago
    [dead]