Helm Repository


Helm Repository

In this tutorial, we are going to discuss more about the public repository available as a part of Helm Hub and how to browse the charts available within the public repository and make use of the repository available from the helm hub to our local installation.

Helm hosts the hub at this location Helm Hub. where all the charts and the repositories are added, I can search the list of charts available in public repository using search packages option.

Now If I get into the Kubernetes cluster node where I have installed helm client, I can provide the command helm. This command going to provide the help information as well as all the options that can be put in within the helm.

Here one thing to be noted, the default value for the cache path, configuration path and the data path is available.

Helm Repository

Since this is a Linux system, it is available within the home directory.cache/helm. If I want to change this, I can very well go ahead and change it.

So I am leaving all these values as default. The reason why I’m explaining about this specific environmental variable, because that’s where the charts going to get stored.

Now I can search the entire hub using the command helm search hub. So that’s going to search all the charts available within the hub. That is the public repository location and it’s going to list all the helm charts, their versions available within it.

Search Helm Chart

In case if I wanted to search for any specific chart, I can provide the command helm search hub. For example, if I wanted to search mysql chart, I can search mysql.

$ helm search hub mysql

So it’s going to list all the charts as a part of mysql or having the keyword mysql.

Now I can search any specific repository say, I wanted to search the repository stable helm search repo stable and I’m getting the error no repositories configured.

$ helm search repo stable
Error: no repositories configured

The reason because in case if I want to search any specific repository, I need to configure the repository say where it is located.

Add Repository

I can add the repository using the command repo, helm repo add I wanted to add the stable repository and provide the repository url.

$ helm repo add stable https://charts.helm.sh/stable
"stable" has been added to your repositories
List Repository

Now I can list all the repositories available using the helm repo command list

$ helm repo list
NAME       URL                                        
stable     https://charts.helm.sh/stable       

So I have the cache of the repository that is stable available over here and any chart that I wanted to add it’s going to provide the information on how I can add this particular repository and the url corresponding to it.

Stable is a very popular public repository where most of the stable charts are available as a part of the stable repository.

Now I can search the repository stable and look for the charts available within it. Here I’m going to search the repository stable.

$ helm search repo stable
NAME                                     CHART VERSION   APP VERSION             DESCRIPTION                                       
stable/acs-engine-autoscaler             2.2.2           2.1.1                   DEPRECATED Scales worker nodes within agent pools 
stable/aerospike                         0.3.5           v4.5.0.5                DEPRECATED A Helm chart for Aerospike in Kubern…
stable/airflow                           7.13.3          1.10.12                 DEPRECATED - please use: https://github.com/air…
stable/ambassador                        5.3.2           0.86.1                  DEPRECATED A Helm chart for Datawire Ambassador   
................
................
................

So I do have the list of charts and their versions within it. So it’s going to list the chart version and the application version within it.

Search Helm Chart Within Repository

Say if I wanted to search for mysql chart within stable repository, I can use the following command

$ helm search repo stable/mysql
NAME                CHART VERSION   APP VERSION DESCRIPTION                                       
stable/mysql        1.6.9           5.7.30      DEPRECATED - Fast, reliable, scalable, and easy…
stable/mysqldump    2.6.2           2.4.1       DEPRECATED! - A Helm chart to help backup MySQL…

So it’s going to list all the charts with the keyword mysql and the chart version and the application version.

In this case, I have two records mysql and mysql dump with the corresponding chart version and the application version.

The same thing can be browsed within the hub as well. For example, if I can search for the chart, mysql and within the mysql, we will be having the clear instruction on how to add this particular repository as a part of our installation.

As we discussed in the beginning, the repositories that we are adding will get stored as a part of the configuration location.

I can get into that specific location ($HOME/.cache/helm). Here I can search for the directories. I will be having a repository. Here All the repositories will be available.

[email protected]:~/.cache/helm/repository$ ll
-rw-r--r-- 1 ashok ashok    3370 May 14 18:17 stable-charts.txt
-rw-r--r-- 1 ashok ashok 9839197 May 14 18:17 stable-index.yaml

The location of this particular chart cache is for informational purpose. We are not going to change the files available over here directly.

I’ll explain the detailed way of how to update the values and provide the updated values to the chart in the future tutorials.

Summary

So in a quick summary, we have seen how to browse the charts within the public repository, as a part of Helm Hub and how to add a repository within the helm client and browse the charts available within the repository.

Don’t worry about the terminologies. Few of the terminologies, we will be connecting the dots in future tutorials.

This is a quick introduction so that we can get started quickly and create our own chart and deploy it within the cluster.

Helm Repository


Scroll to top