helm / helm/chartmuseum

Only Store Chart Once

Open
#168 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
3.8k
Forks
407
PR merge metrics
No merged PRs in 30d

Description

&tldr; If a chart is uploaded to chartmuseum many times only store it once.

The idea here is based on content addressing rather than addressing by name. This would handle things like container images.

With container images the name (`[org|user]/[name]`) and tags are metadata. Containers have an id in the form of `algo:hash`. This is how the parent is referenced as well. Content is addressed by this id rather than the name. This means that if an image is uploaded 10 times it only needs to be stored once.

Helm charts have a digest as well. You can see them listed in the `index.yaml` files. This digest could be used as a key in storage and a lookup could be put in place for mapping names at tags to digest ids.

We could even go down the road of being fancy after this. An etag with the digest could be used along with `If-None-Match` request headers to even cut down on file transfers. See https://github.com/helm/helm/issues/4618#issuecomment-423276636 for the Helm side of this.

In any case, this is about looking at things from a content address-ability point of view and shrinking storage and bandwidth.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.