goharbor / harbor

An open source trusted cloud native registry project that stores, signs, and scans content.
https://goharbor.io
Apache License 2.0
24.22k stars 4.77k forks source link

Allow pushes to proxy-cache projects #21228

Open ianseyer opened 22 hours ago

ianseyer commented 22 hours ago

Is your feature request related to a problem? Please describe. We want to be able to use an offsite registry as a pull-through cache for a proejct, but want users to be able to push to the project repository (it is not required to replicate that image back to the offsite registry).

This would be similar to a replication, but we want to only pull them in if they are in use (JIT replication, essentially)

Describe the solution you'd like Enable pushes to proxy-cache projects.

Describe the main design/architecture of your solution I am not familiar with why this would not be possible.

If the requested image exists, it will serve from onsite Harbor. If it doesn't, reach out to the offsite and pull it in.

If you push an image, the above process should be unaffected.

Pushes to existing images that came from the offsite registry should follow normal tag immutability rules.

Describe the development plan you've considered Enable pushing, see what breaks.

https://github.com/goharbor/harbor/blob/66c98c81f1196b52e7e143a61c40779e8cff6505/src/server/middleware/repoproxy/proxy.go#L281