Skip to content
This repository has been archived by the owner on Feb 28, 2022. It is now read-only.

Pull only layers not yet present in local container storage #42

Open
ricardomaraschini opened this issue Mar 1, 2021 · 3 comments
Open
Labels
enhancement New feature or request

Comments

@ricardomaraschini
Copy link
Owner

ricardomaraschini commented Mar 1, 2021

When pulling images from tagger a whole tar file is sent down the line with the whole image, this is bad. Implement some caching validation so we can avoid pulling multiple times the same blobs.

We have two distinct possibilities here:

  1. Reimplement tagio to mimic a registry api server.
  2. Simply keep using GRPC but split the type used (instead of tar use dir transport and transfer blob by blob).
@ricardomaraschini ricardomaraschini added the enhancement New feature or request label Mar 1, 2021
@ricardomaraschini
Copy link
Owner Author

Still needs some extra discussions on this one.

@ricardomaraschini ricardomaraschini changed the title Caching layers Pull only layers not yet present in local storage Mar 2, 2021
@ricardomaraschini ricardomaraschini changed the title Pull only layers not yet present in local storage Pull only layers not yet present in local container storage Mar 2, 2021
@otaviof
Copy link
Contributor

otaviof commented Mar 2, 2021

I think we are looking for a local container storage, analogous on what we have with Docker/Podman. So, kubectl tag pull will interact with this underlying storage, and by taking advantage of the registry protocol, will download only the layers it needs.

Upstream we see containers/storage we the primary implementation for this logic.

@otaviof
Copy link
Contributor

otaviof commented Mar 2, 2021

Another perspective to consider, is how users will consume this feature. If I understand it correctly, I could:

  1. Download the container image with kubectl tag pull <image>;
  2. Use this container with docker, podman, buildah. For instance docker run --rm <image>;

Therefore, we need to consider how tagger plugin interacts with Docker API and local OCI container storage. As a starting point, we should focus on OCI storage, but keep this design in mind.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants