Overview of Helm

Helm is the package manager for Kubernetes. It is an open source project by the Cloud Native Computing Foundation (CNCF).

Kubernetes provides a rich interface for deploying applications through an extensible object model. Typically, you write manifest YAML files describing objects and then use the kubectl command to feed the YAML files to Kubernetes. Kubernetes then configures the Kubernetes cluster to match. Built-in object types include include Pod, Service, and Persistent Volume. The TimesTen Operator extends the Kubernetes object type system by adding objects of type TimesTenClassic and TimesTen Scaleout.

Helm is an optional layer on top of this architecture. Rather than manually creating YAML files and using kubectl to apply the files, Helm gives application developers the ability to package a set of YAML files into a single entity called a chart. Such a chart can be installed into a Kubernetes cluster using a single command.

The YAML files provided in a chart are templates. When installing a chart, you can specify a set of values to replace into the chart. Helm processes the YAML in the chart, substituting values provided by you, and submits the final version to Kubernetes through the kubectl command.

Helm also provides advanced facilities to manage applications:
  • Charts can depend on other charts. Helm can assist in maintaining the dependency relationships. Helm can install an application and its dependencies as a unit.

  • You can list charts that have been installed in your Kubernetes cluster and refer to them by name.

  • You can use the helm test command to verify the functioning of the application.

  • You can upgrade an installed application by applying a new version of the chart that installed the application.

  • You can delete charts by name.

For more information about Helm, see https://helm.sh/docs/.