pulp / pulp/pulp_container

As an admin/user I can maintain a controlled registry that doesn't continually grow in space

Open
#1,268 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature
Dominant language
Python
Stars
31
Forks
56
Avg merge
2d 22h
Merged PRs (30d)
22

Description

Is your feature request related to a problem? Please describe.
While for synced repos there is an option to sync content in a mirrored mode( not just additive), and then trigger orphan cleanup(still half solution). For pushed repos the content always gets accumulated.

Describe the solution you'd like
Introduce a concept of image garbage collection. Garbage collection will ensure efficient use of resources for active objects by removing objects that occupy sizeable amounts of disk space

Describe alternatives you've considered

  1. set retain_repo_versions to 1 on the push repo
  2. manually remove undesired images by digest. It will delete its tags and blobs(in case they are not referenced in other images)
  3. Trigger orphan cleanup. Might need to adjust orphan_protection_time based on needs.

For synced repos one can also consider and combine the disk reclamation feature in case repo versioning is needed.

Additional context
Design and criteria of garbage collection - TBD
Disclaimer - this feature might be incompatible with repo versions, and might require, or will take into account to garbage collect only those repos that do not have versioning enabled aka repo_version_retention=1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the existing mirrored sync, orphan cleanup, pushed-repository version retention, and digest deletion behavior described in the issue. Done requires agreed garbage-collection design and criteria that address disk reclamation, repository versioning, retention, and orphan protection.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.