docker / roadmap

Welcome to the Public Roadmap for All Things Docker! We welcome your ideas.
https://github.com/orgs/docker/projects/51
Creative Commons Zero v1.0 Universal
1.74k stars 257 forks source link

Kubernetes backend for `docker compose` #236

Open aiordache opened 3 years ago

aiordache commented 3 years ago

Tell us about your request Create a new backend enabling docker compose to deploy Compose apps to Kubernetes clusters.

Which service(s) is this request for? Compose CLI in docker/compose-cli

mikesir87 commented 3 years ago

I'll gladly +1 this, but maybe with a caveat as I've been playing around with the experimental support for a little while.

What makes Kubernetes interesting is that there are so many ways to do the same things. Some teams deploy their manifests directly, some teams use GitOps (Flux, Argo, etc.). Some teams are using various tooling to build out manifests (Terraform, Kompose, Cue, etc.).

In addition, the Compose spec doesn't outline everything needed to run an application, Ingress being one of them. Even with Ingress, we are unable to use the stable release of Ingress because the version of Traefik we're running still only supports the beta version.

So... one of the thoughts I've been having is how nice it would be to use the docker compose tooling for everything except the actual launching/destruction of the stack. I can leverage our platform's toolchain to do the deployments (which in our case is Flux), but use the rest of the toolchain for debugging, monitoring, etc. (docker compose logs or docker compose exec being two examples).

To do this, the Compose tooling could outline specific labels/metadata that can be used to discovery projects/services. It then uses that to query for projects, get logs, etc. I've actually updated my Helm project (compose-deployer) to define the labels and a makeshift Helm configmap to get it working. It's super slick, but would be an interesting idea to support it going forward.

jamshid commented 2 years ago

Anyone know, what is the status of the k8s / helm backend for docker compose? Are there instructions somewhere for how to use the experimental support referenced here? Isn't the docker/compose-cli project kinda dead now that docker compose v2 is available? I believe the docker/compose project now covers the golang rewrite, correct?