I’m afraid this is going to attract the “why use podman when docker exists”-folks, so let me put this under the supposition that you’re already sold on (considering) using podman for whatever reason. (For me, it has been the existence of pods, to be used in situations where pods make sense, but in a non-redundant, single-node setup.)
Now, I was trying to understand the purpose of quadlets and, frankly, I don’t get it. It seems to me that as soon as I want a pod with more than one container, what I’ll be writing is effectively a kubernetes configuration plus some systemd unit-like file, whereas with podman compose I just have the (arguably) simpler compose file and a systemd file (which works for all pod setups).
I would get that it’s sort of simpler, more streamlined and possibly more stable using quadlets to let systemd manage single containers instead of putting podman run commands in systemd service files. Is that all there is to it, or do people utilise quadlets as a kind of lightweight almost-kubernetes distro which leverages systemd in a supposedly reasonable way? (Why would you want to do that if lightweight, fully compliant kubernetes distros are a thing, nowadays?)
Am I missing or misunderstanding something?
I think the gap you have is in understanding that Podman Compose was meant to line up with the limitations of docker’s compose, but technically is more capable.
Quadlet files let you do more complex workflows like deploying multiple copies of a service in your deployment that regular compose doesn’t, while not running full kube.
The use I have is that I have something deployed in compose right now that I’d like to scale up on the box since i have the capacity for it, but dont want to deal with a full kube setup or the politic
Personally I’ve converted most of my single node k3s to using quadlet files instead as its less fragile. I absolutely deploy single containers in the quadlet. They show up in journalctl and the ergonomics are great.
Thank you for those very convincing points. I think I’ll give it a try at some point. It seems to me that what you’re getting in return for writing quadlet configuration in addition to the kubernetes style pod/container config is that you don’t need to maintain an independent kubernetes distro since podman and systemd take care of it and allow for system-native management. This makes a lot of sense.
How do you do inter-pod communication witg quadlet? I never figured that out with podman kube play and just moved back to staring conatiners and creating networks from a shell script