Bitnami index FAQ
carrodher opened this issue ยท 0 comments
๐ Context
What action took place?
On June 2nd, the Helm chart index stored at https://charts.bitnami.com/bitnami was truncated only containing entries for the last 6 months (from January 2022 on).
Why has it been done?
In May 2022, we were facing major reachability issues reported by users and internal issues with the index.yaml associated with the Bitnami Helm charts repository. After going deeper about what could be the issue, the root cause is related to CloudFront reaching some limits due to the volume of traffic when serving the index.yaml.
This index.yaml contains all the Bitnami Helm charts history (around 15300 entries), producing a pretty fat 14MB file. Given the size of the file and the volume of traffic, thousands of terabytes of download traffic per month are being generated.
Was the original issue solved?
Yes, the truncation of the file produced a reduced 3.5MB index.yaml, which causes the issues from CF to disappear.
Did you try other alternatives?
One of the alternatives considered was the use of compression at CloudFront, in that case, this solution doesnโt work since compression is not used by the Helm client (helm
) itself (see helm/helm#8070) so it didnโt solve the reported issue.
The long-term plan is to add support for Helm Charts OCI and make them available via an OCI registry.
๐ Were the Helm charts removed?
No, this action is not removing any Helm chart. Packaged tarballs (.tgz) won't be removed, this action is only affecting the index.yaml used to list the Helm charts.
๐ง Where can I find the full index.yaml?
The whole index.yaml is being generated and stored in GitHub, not in the CDN. You can find it in the archive-full-index branch. If you want to keep using older versions and the size or speed is not critical, feel free to use this one.
$ helm repo add bitnami-full-index https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
"bitnami-full-index" has been added to your repositories
How to use this full index.yaml in a dependent chart?
When used as a dependency in Chart.yaml you should replace the existing repository with the path to the full file hosted in GitHub:
- repository: https://charts.bitnami.com/bitnami
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
What happens if I reach any of the GitHub request limits for the full index.yaml?
GitHub API requests are subject to different rate limits. If that is your case it is possible to host the repository index.yaml locally and use that for packaging and shipping the Helm chart dependencies.
A possible way is to use a Nginx container image to make it available via HTTP.
$ git clone github.com:bitnami/charts
$ git checkout BRANCH
$ docker run -p 80:8080 -v `pwd`/bitnami:/app bitnami/nginx
Then you can use the new index.yaml locally. The Helm charts .tgz will continue being hosted at the CDN.
$ helm repo add bitnami-full http://localhost
"bitnami-full" has been added to your repositories
I am not bundling the dependencies in my Chart, which repository should I use?
If you distribute the Helm charts with dependencies, it is recommended to include them in the charts\
folder using helm dependency build
. If you decide not to ship them, we recommend pointing to the full index.yaml repository at https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
๐ What are the index-related branches?
There are two branches related to the index.yaml file:
- index: Updated by this GH action. It is served using a CDN at
https://charts.bitnami.com/bitnami
and truncated based on Bitnami policies. - archive-full-index: Updated by this GH action. Contains the whole history (no truncation) and it is served directly on GitHub.
To provide feedback or ask any question related to this topic, please use the already existing GH issue (#10539)