rimusz blog

Cloud computing, clusters, containers, Kubernetes, Helm ...

Host Your Helm Chart in ChartCenter From Git Source

Ownership isn't for everyone -- building and maintaining an abode is a lot of trouble when all you need is a place to hang your hat.

That can also be true when you're a creator of Helm charts. You'll certainly want the benefits of a Helm chart repository to store, version, and share your charts for deploying applications to Kubernetes.

Until the release of Helm v3, you might have submitted your Helm chart to the official stable or incubator chart repository to share it with the community. But this Helm chart archive is no longer actively maintained, and is not accepting new charts. Now all Helm charts must be in a hosted repository elsewhere.

But you might not want the bother of hosting and maintaining your own Helm chart repository on Github, S3, etc.

Now you can add your Helm chart to ChartCenter directly from its Git-stored source (GitHub, GitLab or BitBucket). When you add your Helm chart, ChartCenter will host your repository for you and assign you a namespace based on your Git repo name.

Once your chart is available to the world through ChartCenter, the free community resource for Helm will automatically perform the procedures to keep dependencies and more up-to-date.

Preparing Your Chart

For an example, we’ll start with the security-sample-chart in my GitHub repo.

rimusz lab github repo

Your Helm chart’s Git source repository must be tagged for release.

The release tag must be compliant with semantic versioning and include the chart name. For example:

  • v0.0.1-chart-name
  • 0.0.1-chart-name

github release naming example

Your git release file might contain other charts, these won’t be part of inclusion; they will be safely ignored. Only charts which were added to ChartCenter by the inclusion from source process will be processed.

Adding a Helm Chart to ChartCenter From Source

On the main Chartcenter page, click Add Chart.

chartcenter add chart button

You will be prompted with a new pop-up window:

add repositories and charts

As we are interested in adding the chart from source, click on ADD A CHART and complete the form:

add a chart

  • Repository URL - the full URL path to your Git repository
  • Chart maintainer email - This is required, and must match your email in the chart’s Chart.yaml file.
  • Path to location of Chart.yaml - The path in the git repository where your chart is stored.

Note: You can add only one chart at a time from the same Git repository.

Once submitted your email will be checked and you need to confirm your submission. When you confirm your email your chart will be queued for processing.

On source from inclusion success you will see:

inclusion success status

Great!

Let’s search for the chart we have included:

search chart inclusion from source

Very nice!

When ChartCenter hosts your Helm chart from source, it creates a namespace from the main domain of your Git repository with a prefix for the type of source control that was used:

  • gh- For Github (for example gh-rimusz-lab).
  • gl- For Gitlab
  • bb- For Bitbucket

We can see how easy it is so easy to add the Helm chart from the Git repository and make it available in the ChartCenter. When you release the new chart version as a new git release, it will be automatically added to the ChartCenter, some chart metadata might not be available until all the processing is done.

How to use the Helm chart from ChartCenter

Now that your Helm chart is hosted in a repository in ChartCenter, you and others can pull the chart from ChartCenter.

Step 1: Add ChartCenter as your Helm repository

Set your Helm client to use the ChartCenter repository as your single central location to consume charts:

$ helm repo add center https://repo.chartcenter.io
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "center" chart repository
Update Complete. ⎈Happy Helming!⎈

Great, we have updated the local Helm repositories cache.

Step 2: Using ChartCenter as a repository

Now let’s check the added Helm repository:

$ helm search repo center/gh-rimusz-lab/security-sample-chart

NAME                                       CHART VERSION APP VERSION  DESCRIPTION
center/gh-rimusz-lab/security-sample-chart 0.2.2         0.2.0        A security sample Helm chart

Here, you’re able to see how much easier it is to use one central repository than it is to add many Helm repositories and see your chart part of it.

Helm Charts at Home

Once your Helm chart is included in ChartCenter directly from source, it’s available to the community, along with all other Helm charts in ChartCenter through a single, central repository.

Listed in ChartCenter, your included chart collects the same powerful metadata as all others. You’ll gain important information about security vulnerabilities in the application through the deep recursive security scans powered by JFrog Xray. As others use your chart in their dependencies, you’ll also be able to see where they’re being referenced.

So there’s no need to maintain a self-hosted Helm repository if you do not want to. You can leave that to ChartCenter to handle, and gain important insights into your chart as well.

Happy charting :-)

Rimantas (Rimas) Mocevicius

Cloud Native, Kubernetes, Co-founder of Helm, CKA, kubectl: Command-Line Kubernetes in a Nutshell and CoreOS Essentials books author, Kubernaut at JFrog

Vilnius, Lithuaniahttps://rimusz.net