Helm Repository
This tutorial will discuss the public helm repository available as a part of Helm Hub and how to browse the charts available within the public helm repository and use the repository available from the helm hub to our local installation.
At a high level, a chart repository is where packaged charts can be stored and shared. The distributed community Helm chart repository is located at Artifact Hub and welcomes participation. But Helm also makes it possible to create and run your chart repository.
Helm hosts the hub at this location Helm Hub. All the charts and the repositories are added; I can search the list of charts available in the public repository using the search packages option.
Now If I get into the Kubernetes cluster node where I have installed the helm client, I can provide the command helm. This command will provide the help information and all the options put in within the helm.
Here is one thing to note: the default value for the cache path, configuration path, and the data path is available.
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. I’m explaining this specific environmental variable because that’s where the charts are 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
If I wanted to search for any specific chart, I could 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
If I want to search any specific repository, I need to configure the repository to say where it is located.
Add Repository
I can add the repository using the command repo, helm repo add and 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 will 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 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, 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.
We can browse the same thing within the hub as well. For example, if I can search for the chart, MySQL and within the MySQL, we will have clear instructions on adding this particular repository as a part of our installation.
As we discussed initially, 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 have a repository. Here All the repositories will be available.
ashok@waytoeasylearn:~/.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 purposes. We are not going to change the files available over here directly.
I’ll explain the straightforward way to update the values and provide the updated values to the chart in 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 to get started quickly, create our chart, and deploy it within the cluster.