Hosting helm charts: A Maintainer’s Perspective
Prasanna Raghavendra
Posted on July 7, 2020
Helm charts is becoming one of the best ways to package any kubernetes application and indeed becoming popular among contributors and contributing companies. It provides a consistent management of any application on kubernetes and a very easy way to override default parameters.
With the release of ChartCenter by JFrog and given that I own hosting JFrog charts, it was important for me to look at this with a finer tooth.
I wanted to take a step back and see who are the providers of chart hosting and hit this nice blog. Let us take this a step further and try to compare them and see how we can leverage these options.
So, here goes my review of these options, against the following 8 criteria.
Host helm repo centrally
We need to ensure that our consumers can download these charts fast and effectively. We will need a way to host on a platform which provides a very good content caching so we are sure that this is available 24*7.
ChartCenter does provide this by running this on a well proven Artifactory, and an operation team who have managed bintray.
The other providers seem to be only working as a directory as they directly provide install commands to the maintainer’s repo. This leads maintainers to take the burden of hosting helm repo effectively, behind CDN.
Clarify chart dependencies
A maintainer would like to ensure that the consumers are clear of the dependencies that the chart has on both sides, where all it is referenced so the consumer can choose a larger chart if needed, and what it references further down, to ensure the consumer is aware of what consumer is picking before he/she installs without having to open the chart.
ChartCenter does provide this effectively.
Did not see them in any other.
Amount of charts hosted
This is important to ensure that as a maintainer you are hosting on a site that is popular and more consumers are on it. It is clear from the numbers (provided in the summary table below), all are in early stages and will surely evolve in the next few months.
Download metrics
Providing information on who is downloading which version of the application is very useful. I found all of them having gaps in this.
While ChartCenter does provide download information, (by of course allowing downloads directly from ChartCenter), it reports by chart version which is not that relevant in the world of applications. It is preferable to have this information by application version and also provide a trend, with download regions, something that was a given in bintray.
Others, being only a portal, cannot provide download functionality and hence no download information.
Related charts
When a consumer comes in a discovery mode, having related content makes a lot of sense to helm the consumer pick the right application.
Artifact Hub provides this well and felt it had relevant charts as well, when I tried wordpress.
ChartCenter, Kubeapps hub and Helm hub seem to be lacking in this area.
Deep curation
Having thoughts and reflection (provided by the host) on charts helps deepen one's understanding on how to compare, install and use applications.
Bitnami (Kubeapps Hub) includes their perspectives in a blog for each chart (of course popular ones). This gives a very good view-point on how one may end up using the chart.
The other three players have not been present in this space.
Make overall usage safe and secure
Having a security report at a chart level provides another nice perspective to know what is going on with the images bundled. This is an area where every chart maintainer is catching up and clearing up their internal security and also working on to depend on the cleanest and latest charts.
ChartCenter is the only one providing this perspective. They are extending this further to allow providers to provide their view-point on some of the open issues. This is an interesting direction ChartCenter has taken and I like this one very much.
Smarter set-me up for better on-boarding
Not all charts are completely independent, especially when you are looking at extension products where you expect some other service is already running, then charts would make a few mandatory values to be filled before getting them working.
Almost all of the providers seem to provide vanilla install commands ignoring some of the mandatory values to be passed, finally leading to a situation where they are actually incorrect.
Summary:
Criteria | HelmHub (CNCF) | Kubeapps Hub (Bitnami) | Artifact hub (OSS) | ChartCenter (JFrog) |
---|---|---|---|---|
Chart hosting | no | no | no | yes |
Chart dependency | no | no | no | yes |
Deep curation | no | yes | no | no |
Chart numbers | Charts: 1355 Versions: NA | Charts: 1400 Versions: NA | Charts: 820 Versions:21k | Charts: 1521 Versions:29k |
Download metrics (application level) | No (dependant on hosting) | No (dependant on hosting) | No (dependant on hosting) | Partial |
Related charts | no | no | yes | no |
Security | no | no | no | yes |
Smart installs commands | no | no | no | no |
As you can see in the table above, all charts are hosting a limited number of charts, while this ecosystem will start growing. Soon, you will see more and more on-boarding into many of these.
If your requirement is to have a completely hosted support, ChartCenter stands out as the only example. If you want to be aligned with the CNCF ecosystem, you could look at helm hub. If you would like to have a third-party validation along with hosting, Bitnami is a good solution.
However, you could also add ChartCenter for hosting and have the other three list your charts so you have the best of the breed.
Let me know, what do you guys think?
Posted on July 7, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.