helm
The Kubernetes Package Manager
Helm is a package manager for Kubernetes that lets you find, install, update, and share entire applications as pre-configured bundles called charts, so you can deploy complex app stacks with a single command instead of manually writing dozens of config files.
Helm is a package manager for Kubernetes, which means it does for Kubernetes what app stores or tools like Homebrew do for your computer. If you're running applications on Kubernetes, it lets you find, install, update, and share entire applications as packaged bundles called "charts." Instead of manually configuring dozens of individual settings files every time you deploy something, you can just install a chart that has everything pre-configured and ready to go.
The tool works through two pieces. There's a client that runs on your laptop or in your automated deployment pipeline, and a server component called Tiller that lives inside your Kubernetes cluster. When you tell the client to install an application, Tiller handles the actual work of setting it up and keeping track of that installation over time. Charts themselves are straightforward packages — each one contains a description file and one or more templates that define what the application needs to run on Kubernetes.
The people who get the most out of this are teams deploying applications to Kubernetes who want to stop hand-crafting configuration files for every deployment. For example, if your team needs to spin up a database, a web server, and a caching layer together, you could package all three as a single chart and deploy the whole stack with one command. It's equally useful if you've built something you want to share with others — you can publish your own chart to a repository so anyone can pull it down and run it the same way you do, with reproducible results.
One thing worth noting is the two-part architecture. Because Tiller runs inside the cluster with the power to create and manage resources, it's a design that prioritizes convenience and hands-off management. The project is built in Go and is part of the broader Kubernetes ecosystem, with an active community accessible through Slack, mailing lists, and weekly developer calls.
Where it fits
- Deploy a multi-component application stack (database, web server, cache) to Kubernetes with a single command.
- Package your own application as a chart and publish it so others can install and run it identically.
- Update or roll back an existing Kubernetes application installation without manually reconfiguring settings.
- Install a community-maintained chart from a shared repository to quickly add a service like a database to your cluster.