Skip to content

Enable storage retention for oci - #443

Merged
andrew merged 1 commit into
git-pkgs:mainfrom
pinguinfuss:issue-306-retention-oci
Oct 12, 2026
Merged

andrew merged 1 commit into
git-pkgs:mainfrom
pinguinfuss:issue-306-retention-oci

Conversation

@pinguinfuss

Copy link
Copy Markdown
Contributor

Refs #306, builds on #428.

Registers oci for storage.retention. Blobs are evicted. Manifests live in the metadata cache and aren't touched.

Blobs are stored under the repository name of the pull, which purl writes as a single name (pkg:oci/library%2Fnginx). Package rules are written as a path, pkg:oci/library/nginx, and are mapped to that form. Keys with an empty segment, a tag or digest, or a bare upstream/{name} prefix are refused. Named upstreams keep their prefix, also when containerd reaches them through ?ns=.

Homebrew bottles and Helm charts pulled over OCI fall under the oci rule too. Bottles are stored under Homebrew's image name, so openssl@3 is pkg:oci/homebrew/core/openssl/3.

Blobs are stored under the repository name of the pull, which purl writes as one name (pkg:oci/library%2Fnginx). Package rules write it as a path, pkg:oci/library/nginx, and get mapped to that form; keys with an empty segment, a tag or digest, or a bare upstream/{name} prefix are refused. Named upstreams keep their prefix, also when containerd reaches them through ns. Homebrew bottles and Helm charts pulled over OCI fall under oci too, bottles under Homebrew's image name (openssl@3 is homebrew/core/openssl/3). Manifests live in the metadata cache and aren't touched.

Refs git-pkgs#306

@andrew andrew left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OCI package rules match the stored blob keys, including named upstreams and containerd namespace routes. The handler tests cover eviction, refetching, and package exemptions.

@andrew
andrew merged commit b40a3f0 into git-pkgs:main Oct 12, 2026
6 checks passed
@pinguinfuss
pinguinfuss deleted the issue-306-retention-oci branch October 12, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants