As vast as Kubernetes is, it doesn’t solve every problem by itself; a large ecosystem exists to fill the gaps. One of these gaps is packaging and distributing apps, and the solution is Helm. You can use Helm to group a set of Kubernetes YAML files into one artifact and share that on a public or private repository. Anyone with access to the repository can install the app with a single Helm command. That command might deploy a whole set of related Kubernetes resources including ConfigMaps, Deployments, and Services, and you can customize the configuration as part of the installation.
People use Helm in different ways. Some teams use Helm only to install and manage third-party apps from public repositories. Other teams use Helm for their own applications, packaging and publishing them to private repositories. In this chapter, you’ll learn how to do both, and you’ll leave with your own idea of how Helm might fit in your organization. You don’t need to learn Helm to be effective with Kubernetes, but it’s widely used so it’s something you should be familiar with. The project is governed by the Cloud Native Computing Foundation (CNCF)—the same foundation that stewards Kubernetes—which a reliable indicator of maturity and longevity.