You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Feature Request: Autodiscovery for Podman Quadlets #8951
Podman Quadlets are similar to Docker Compose service definitions, but they are using a systemd unit like syntax. Quadlets are usually placed in /etc/containers/systemd/ and the simpliest kind of a Quadlet uses the .container file suffix, which I would like for updatecli to support.
I would like to just execute updatecli apply inside the /etc/containers/systemd/ directory and let updatecli do its thing :) Images should be automatically updated and pinned using digests.
I'd like to work on this. For the first PR, should I limit the scope to .container files and autodiscovery of Image= values using go-systemd, or do you expect a dedicated Quadlet resource plugin too?
I don't even know what a quadlet resource plugin would do. Sorry, I never used the full feature set of updatecli. I usually just updatecli apply my docker compose files and I am happy that it works 😅
There doesn't seem to be a dedicated "docker compose" resource plugin, probably because you can just use the "yaml" resource plugin. In that sense, there should probably (if at all) a systemd-unit resource plugin instead of a specialized quadlet plugin. But this is out of scope of my feature request.
Thanks, that matches my understanding. I'll wait for @olblak confirmation, but autodiscovery only for .container files sounds like the right first scope
Unless we can use the regular expression reliably, we'll need to implement a source/condition/target plugin for systemd configuration using something like https://github.com/coreos/go-systemd/tree/main/unit
Thanks, that makes sense. I'll start by looking at pkg/plugins/resources/file and implement a systemd resource plugin using go-systemd package, then build the Quadlet autodiscovery plugin on top of it. I'll keep the first PR focused on .container files and Image= updates unless you prefer a different scope
Activity
olblak commentedon May 20, 2026
This is a good idea, we could parse systemd configuration file using https://github.com/coreos/go-systemd/tree/main
We would need a few plugin https://github.com/coreos/go-systemd/tree/main
ScMofeoluwa commentedon May 24, 2026
I'd like to work on this. For the first PR, should I limit the scope to
.containerfiles and autodiscovery ofImage=values using go-systemd, or do you expect a dedicated Quadlet resource plugin too?ChristianCiach commentedon May 24, 2026
I don't even know what a quadlet resource plugin would do. Sorry, I never used the full feature set of updatecli. I usually just
updatecli applymy docker compose files and I am happy that it works 😅There doesn't seem to be a dedicated "docker compose" resource plugin, probably because you can just use the "yaml" resource plugin. In that sense, there should probably (if at all) a systemd-unit resource plugin instead of a specialized quadlet plugin. But this is out of scope of my feature request.
ScMofeoluwa commentedon May 24, 2026
Thanks, that matches my understanding. I'll wait for @olblak confirmation, but autodiscovery only for .container files sounds like the right first scope
olblak commentedon May 24, 2026
Just to clarify here, an autodiscovery plugin is nothing more than a generator of Updatecli manifest.
For example here the docker compose autodiscovery plugin: https://github.com/updatecli/updatecli/blob/main/pkg/plugins/autodiscovery/dockercompose/manifestTemplate.go
Unless we can use the regular expression reliably, we'll need to implement a source/condition/target plugin for systemd configuration using something like https://github.com/coreos/go-systemd/tree/main/unit
Something like https://github.com/updatecli/updatecli/tree/main/pkg/plugins/resources/file
And then implement the autodiscovery plugin
ScMofeoluwa commentedon May 24, 2026
Thanks, that makes sense. I'll start by looking at
pkg/plugins/resources/fileand implement a systemd resource plugin using go-systemd package, then build the Quadlet autodiscovery plugin on top of it. I'll keep the first PR focused on.containerfiles andImage=updates unless you prefer a different scopefeat(systemd): add resource plugin for systemd unit files (#8970)