Helm is an open-source package manager for Kubernetes that can installs a entire application using a single command, with no need to use kubectl (you can read more about it ). It helps to easily manage even complex applications on Kubernetes and also create your own.
Helm uses a packaging format called Charts, which are packages of pre-configured Kubernetes resources that can be used to deploy applications on a cluster. A Chart contains information such as the chart version, app version, chart name, dependencies (sub charts).
The Charts can be customized by changing default settings editing the values.yaml file. The template files generate the yaml files using the chart values. Once this chart has been installed on your cluster, it is called a release. Releases are versioned and it's possible to make updates or rollbacks. A new release is created for each installation.
Helm charts are stored on Repositories, dedicated servers where the charts can be found and also published. The are different types of Repos: the official and the stable, maintained by the Helm project, and the private Repository, only accessible to a specific group of users, useful for organizations. Most popular Repos are:
- Bitnami: In order to be added to a user's local Helm installation, Bitnami's Helm charts are housed on their own Helm repository. The required charts can then be found, downloaded, and installed by users. Applications can now be run on Kubernetes more easily thanks to Bitnami's tools and resources, which also assist users in managing deployments and troubleshooting problems.
- ArtifactHub: For CNCF projects, packages and configurations can be found, installed, and published using the web application Artifact Hub.
- ChartMuseum: An open-source Helm chart repository server with support for cloud storage backends, that can be easily installed and configured.
Using the Helm command line tool (Helm client), the local machine is able to communicates with the Helm server, to download a chart from a Repository and create and manage your own charts. At the same time, the Helm Tiller server runs inside the cluster, managing the installations and updates.