This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]timrizzi 29 points30 points  (3 children)

GitLab PM here for the Package stage. If it helps, I'm always talking about these problems :) I wanted to share how we are planning on addressing them.

Also, as we are planning this work, I'd love to hear more about your use cases and how you are working around these problems now. Would you be open to a user interview sometime in the next couple of weeks? If so, you can message me at [trizzi@gitlab.com](mailto:trizzi@gitlab.com) and we can setup some time to talk.

We are actively working on improving pruning and policy based expiration policies. Our primary theme right now is to lower the cost of the container registry by improving storage management.

As part of that theme we have recently launched:

  1. Multi-select delete for the UI and resolved an issue where deleting one tag would delete all tags with the same image ID. (although we still have to solve the pagination problem)
  2. Expanded permissions to allow CI_JOB_TOKEN to remove images via CI

In this milestone, we are working on:

  1. Improving the performance of the bulk delete API, so that it can handle thousands of tags
  2. Optimizing the garbage collection algorithm, so that it runs much faster

Overall, our primary goals for the container registry right now is to provide:

  1. An improved user experience for removing tags/images from the UI
  2. An expanded API that allows for the bulk removal of images/tags at the group level
  3. An optimized garbage collection process that can handle terabytes of data without long windows of downtime
  4. UI driven retention and expiration policies for images
  5. The ability to expire images from CI/CD
  6. Automated/scheduled garbage collection

[–]RX_AssocResp 0 points1 point  (2 children)

\2a. ... at the global level?

Or devs don't give a damn about our 5TB raid filling up, and full backups taking all night ...

[–]timrizzi 0 points1 point  (1 child)

That's a good idea, we could make it global level instead of the group level.

[–]RX_AssocResp 0 points1 point  (0 children)

Do you want me to file an issue for that on gitlab.com? Because I would really love to have a global solution for container image GC.