I've done this as well and I really wouldn't recommend it, especially if you intend to use rootless podman.
As the author notes, doing this with rootless podman is a pain in the ass. If you want the containers to start with the system, then you have to have a system target which a user service waits for. The user service then has to reference each of the container quadlets in order to start them. It's fiddly and adds new failure points.
Even if you're not using rootless, the quadlets have to be run through a script which translates them systemd units, so it's awkward to use with declarative config management. Quadlet syntax and systemd syntax are also similar enough to be confusing at times.
It might be fine if you're building host images (eg: immutable dev env VMs). I won't be using this in production though, whether that's at work or in the homelab.
bjoli 6 hours ago [-]
I use it and it is not great, but it is also very nice to just have it work with systemd.
When I have time I want to build a system that takes s-expressions (I am that kind of guy) and produces pods with containers in them, being similar to docker-compose but that generates systemd files. It would be much nicer to just dump a yaml/sexp file in your systems unit dir and have it work.
I use it in my homelab, but mostly because I have had issues with autostarting podman and docker containers without writing a systemd unit file anyway.
I have had no issues with rootless containers though.
Rendered at 16:34:19 GMT+0000 (UTC) with Wasmer Edge.
As the author notes, doing this with rootless podman is a pain in the ass. If you want the containers to start with the system, then you have to have a system target which a user service waits for. The user service then has to reference each of the container quadlets in order to start them. It's fiddly and adds new failure points.
Even if you're not using rootless, the quadlets have to be run through a script which translates them systemd units, so it's awkward to use with declarative config management. Quadlet syntax and systemd syntax are also similar enough to be confusing at times.
It might be fine if you're building host images (eg: immutable dev env VMs). I won't be using this in production though, whether that's at work or in the homelab.
When I have time I want to build a system that takes s-expressions (I am that kind of guy) and produces pods with containers in them, being similar to docker-compose but that generates systemd files. It would be much nicer to just dump a yaml/sexp file in your systems unit dir and have it work.
I use it in my homelab, but mostly because I have had issues with autostarting podman and docker containers without writing a systemd unit file anyway.
I have had no issues with rootless containers though.