A small podman quadlet update checker
  • Go 98.7%
  • Just 1.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ieris19 061f74acff
Deleted TODO from git
It's probably better off in some dedicated task tracker
2026-07-15 02:14:23 +02:00
src Added image parsing tests 2026-07-15 01:32:45 +02:00
.gitignore Added justfile 2026-07-15 01:34:42 +02:00
justfile Added justfile 2026-07-15 01:34:42 +02:00
README.md Updated README with X-UpdateLink options 2026-07-15 01:34:07 +02:00
sample.toml Added sample configuration file 2026-06-13 00:49:33 +02:00

UpdateLink

A Podman-focused CLI tool that checks container versions in Quadlet .container files against their upstream registries and reports which containers have updates available.

Usage

update-link [--config /path/to/config.toml]

The config file defaults to /etc/update-link/config.toml if --config is not specified.

Configuration

You can find an example of a configuration file in the repository called sample.toml. For further information, refer to the config package that manages the configuration.

Customized behavior

For extensible, per image configuration of this tool's behavior, you can add special keys to your container definitions under the [X-UpdateLink] section. The following options are supported at the current time:

  • TagPattern: for tags that aren't standard semantic versions. Must define named groups major and minor; patch and extra are optional but accounted for, extra will be used for channel pinning, the rest is just semantic versioning.
  • ImagePattern: if your registry cannot be parsed by the default regex, you can override this. For example, registries that demand more than 2 segments for the image repository (assuming the segments to be: host/repository:tag@digest). Must define a named group name while host, user, tag and digestare all optional.

For ImagePattern, by convention, the sections are called user and name, however, OCI image names don't make such distinction. It's all a repository to the container runtime. Thus, when user is absent, name must be the full repository path, if user is present, then this project constructs the repository path as user/name. If this convention does not apply to your registry, you can simply use the name capture group for the whole repository segment.

Limitations

  • Only Quadlet .container files are supported, for now.
  • Upstream registries must expose the OCI Distribution tag-listing API.
  • Aliases may be needed for registries whose public hostname differs from their API endpoint (e.g. docker.io).
  • Versions must be valid semantic version tags. Digest-pinned, textual tags or untagged images are treated as non-fatal errors.