buildpacks / rfcs

RFCs for Cloud Native Buildpacks
Apache License 2.0
56 stars 71 forks source link

RFC: Private Registry Mirrors #285

Open jabrown85 opened 1 year ago

jabrown85 commented 1 year ago

Readable

buildpack-bot commented 1 year ago

Maintainers,

As you review this RFC please queue up issues to be created using the following commands:

/queue-issue <repo> "<title>" [labels]...
/unqueue-issue <uid>

Issues

(none)

loewenstein commented 1 year ago

What images are requested inside of the lifecycle?

hone commented 1 year ago

What images are requested inside of the lifecycle?

If the mirrors are available, I believe it would use the image from the mirror while the image will be written with the original source.

jabrown85 commented 1 year ago

What images are requested inside of the lifecycle?

Lifecycle talks directly to the registries about various images during the execution. One being the destined run-image for the image being built. For example, during the export phase, lifecycle creates an image manifest from the target run-image's manifest. Lifecycle has to talk to the run-image's registry to do this. If the run-image's registry is a public registry like dockerhub, it would consume request limits from that IP and be anonymous by default.

Lifecycle would also talk to the registry of the image being built in the same way as well as extension referenced images during that phase.

loewenstein commented 1 year ago

Understood. Thanks. I was wondering if there is anything else but run images that are pulled by the lifecycle, because we just recently contributed https://github.com/buildpacks/spec/pull/357 and https://github.com/buildpacks/lifecycle/pull/1024 to improve the handling of stack provided run image mirrors.

Should we add a similar provision here and state that

  1. Multiple mirrors could be defined
  2. The first site that is both reachable and readable is taken
  3. The original site is considered last

cc @natalieparellano @pbusko @c0d1ngm0nk3y

natalieparellano commented 3 weeks ago

Whoops, I mean to review this, not approve it (yet)