spegel-org / spegel

Stateless cluster local OCI registry mirror.
MIT License
1.31k stars 71 forks source link

Support SOCI Snapshotter #176

Open phillebaba opened 1 year ago

phillebaba commented 1 year ago

SOCI Snapshotter is an interesting project which could reduce Pod startup time. At a glance it seems like Spegel should be able to support SOCI ontop of running a normal registry. The main question is if there are users who want this.

https://github.com/awslabs/soci-snapshotter

gyanesh-mishra commented 1 year ago

@phillebaba This would be an AMAZING value add, SOCI seems aws specific, however Stargz should work cross clouds as long as containerd is good right? https://github.com/containerd/stargz-snapshotter

Either way, if spegel can do lazy pulling of images, this would be a game changer for any workloads.

gyanesh-mishra commented 1 year ago

Acutally after reading more through SOCI spec, it does seem like that'll be better, so if you can add support for that, that'd be brilliant

phillebaba commented 1 year ago

I have read through both specs and SOCI is the better option currently as it requires little input from the user. This will be implemented in the future I just need to fix some critical features before I do, just so that I do not create more work than required. The important part is setting up a good testing environment to validate the implementation. It is more a question of time and energy.

ChrisBr commented 5 months ago

@phillebaba we would like to run spegel with estargz-snapshotter. My assumption was it would work as long as we set the mirrors in the snapshotter. Is this not correct?

phillebaba commented 5 months ago

@ChrisBr estargz-snapshotter. works differenetly from SOCI so i cannot say off the top of my head if it it would or not. There are a lot of small details that come into play. Either way it is best to create a separate issue to track estargz-snapshotter support.

ChrisBr commented 5 months ago

Awesome, thanks @phillebaba ❤️ Is there any ETA for SOCI support or anything I can help out to make it happen?

phillebaba commented 5 months ago

Like estargz we need to figure out what is required to get mirroring working properly. A design limitation of Containerd is that that each snapshotter needs to define their own mirror configuration as they are responsible for their own image pulling. First step would be to figure out what this configuration is, document it and then test that it actually works with Spegel. Longterm is to add a SOCI node to the e2e tests.

Don't have an ETA on this as currently Spegel is something I do on my free time because I think it is fun.