Skip to main content

What are the different versions of Helm, and what are the key differences between them?

· 2 min read

There are three main versions of Helm: Helm 2, Helm 3, and Helm Classic. Each version has its own set of features and capabilities, and there are some key differences between them.

1. Helm 2

Released in 2014: The original version of Helm.

Focus: Packaged charts, simpler syntax, Kubernetes client interaction.

Key features:

  1. Package installation, release management, templating.
  2. Dependencies between charts.
  3. Hooks for pre-install, post-install, pre-uninstall, and post-uninstall actions.

Limitations:

  1. Limited extensibility and security features.
  2. Doesn't support Kubernetes namespaces.
  3. Not compatible with newer features of Kubernetes.

2. Helm 3

Released in 2019: A major overhaul of Helm with significant improvements.

Focus: Increased flexibility, improved security, enhanced extensibility.

Key features:

  1. Package installation, release management, templating (Go templates).
  2. Namespaces support, advanced dependency management.
  3. Hooks with improved lifecycle management.
  4. Plugins for extending functionality.
  5. Built-in secret management features.
  6. Support for newer Kubernetes features and APIs.

Limitations:

  1. Not backwards compatible with Helm 2 charts.
  2. Some Helm 2 plugins may not work with Helm 3.

3. Helm Classic

Also known as Tiller: An older component of Helm 2 that ran as a server in the Kubernetes cluster.

Function: Provided centralized authentication and authorization for Helm releases.

Status: Deprecated and removed in Helm 3 due to security concerns.

4. Key differences between versions

Syntax: Helm 3 uses Go templates for templating, while Helm 2 uses its own templating language.

Extensibility: Helm 3 offers a robust plugin system for extended functionality, while Helm 2 plugin options are more limited.

Security: Helm 3 prioritizes security with built-in secret management and improved authentication/authorization compared to Helm 2.

Kubernetes compatibility: Helm 3 supports newer Kubernetes features and APIs, while Helm 2 is designed for older versions.

Backwards compatibility: Helm 3 charts are not compatible with Helm 2, while Helm 2 charts can be converted to Helm 3 with some effort.

5. Recommendation

In most cases, Helm 3 is the recommended version. It offers better features, security, and extensibility than Helm 2. However, if you have existing Helm 2 deployments or require compatibility with older Kubernetes versions, then Helm 2 might be necessary. Helm Classic is no longer recommended due to security concerns.