desync
desync copied to clipboard
container registry as chunk store
I would love to see container registries as supported chunk store backend. Container registries are widely available and often low cost. Supports read and write. The oras project already has a pretty good implementation of using container registries as content addressable storage and provides a go library that could be used by this project.
The interface of that library looks quite similar to what we'd need to support registry stores. Do you happen to have an easy way to setup a local test-server that works with the oras lib?
Unfortunately, it'll be a while (a few weeks at least) before I can look into it.
Thanks @folbricht, appreciate it. :)
Do you happen to have an easy way to setup a local test-server that works with the oras lib?
I've only ever used oras with ghcr.io, but I did some research and discovered a section in the oras e2e documentation about registry services for testing, looks like the main options for local testing are
e2e tests of oras also show how both can be setup, hope that helps.
@katexochen I was thinking the same thing. Would u like to work on it together? i have some ideas.
@emilebosch Feel free to give it a try. If you need any pointers where to start, here's a few:
- You'll have to implement the
Store
andWriteStore
interfaces here: https://github.com/folbricht/desync/blob/master/store.go#L16-L28 - Depending on library support, perhaps the
S3Store
may be a good template: https://github.com/folbricht/desync/blob/master/s3.go - And then to use it from the command-line you'd need to come up with a way of specifying it, see the existing naming scheme in https://github.com/folbricht/desync/blob/master/cmd/desync/store.go#L130 Just ask if you need any help with that.
@katexochen I was thinking the same thing. Would u like to work on it together? i have some ideas.
Sorry, I don't think I'll find the cycles to work on this soon, so feel free to take it away. :) Let me know if you hit any issues.