Welcome to our comprehensive collection of learning resources for Helm! Here, you'll discover a curated list of the best learning materials we've assembled just for you.
Take a moment to explore these valuable resources, handpicked to enhance your understanding of Helm. We strive to provide the most up-to-date and informative content available.
Helm uses a packaging format called charts.A chart is a collection of files that describes a related set of kubernetes resources. A single chart might be used to deploy something simple like a memchached pods, or something complex like a full web app stack with HTTP servers, databases,caches and so on.
A chart is organized as a collection of files inside of a directory.The directory name is the name of the chart.
Helm provides a hook mechanism to allow chart developers to intervene at certain points in a release's life cycle. For example, you can use hooks to:
- Load a ConfigMap or Secret during install before any other charts are loaded.
- Execute a Job to back up a database before installing a new chart, and then execute a second job after the upgrade in order to restore data.
- Run a Job before deleting a release to gracefully take a service out of rotation before removing it.
Hooks work like regular templates, but they have special annotations that cause Helm to utilize them differently. In this section, we cover the basic usage pattern for hooks.
The Available Hooks
The following hooks are defined: Annotation Value | Description
- pre-install -> Executes after templates are rendered, but before any resources are created in Kubernetes
- post-install -> Executes after all resources are loaded into Kubernetes
- pre-delete -> Executes on a deletion request before any resources are deleted from Kubernetes
- post-delete -> Executes on a deletion request after all of the release's resources have been deleted
- pre-upgrade -> Executes on an upgrade request after templates are rendered, but before any resources are updated
- post-upgrade -> Executes on an upgrade after all resources have been upgraded
- pre-rollback -> Executes on a rollback request after templates are rendered, but before any resources are rolled back
- post-rollback -> Executes on a rollback request after all resources have been modified
- test -> Executes when the Helm test subcommand is invoked ( view test docs)
- How to create your first helm chart - Bitnami guide on authoring your first chart
- Authoring awesome charts - official Helm guide on authoring Awesome Charts
- Kompose - how to translate a docker-compose file into a Helm chart
Official Kubernetes Helm repositories
- Kubernetes Helm charts stable repo
- Kubernetes Helm charts incubating repo
- Helm Hub - Official Helm Hub
3rd party repositories / hubs
- Cloudsmith - A fully managed package management SaaS, with first-class support for public and private Kubernetes registries (Docker + Helm Charts, plus many others). Has a generous free-tier and is also completely free for open-source.
- Fabric8 - chart repository by Fabric8
- Kubeapps - Kubeapps helm chart hub by Bitnami
- Fairwinds - Chart hub by Fairwinds
- ChartCenter - Central repository of Helm charts by JFrog
These usually hold a single chart or a group of connected charts. Can be more up to date than the mainstream Kubernetes repos.
- Gitlab Omnibus - an All-In-One chart for deploying Gitlab in Kubernetes
- Jupyterhub and Binderhub - charts for deploying services to run Jupyter notebooks
- Harbor - Harbor is a container and Helm registry with built-in security
- OpenStack - various charts by the OpenStack project
- Fn Project - Fn serverless platform charts
- Lenses - charts for Lenses, Apache Kafka, Kafka Connect and other components for data streaming and data integration
- Zalenium - flexible and scalable container based Selenium Grid with video recording, live preview, basic auth & dashboard
- Elasticsearch Fluentd Kibana - chart to deploy a full EFK stack for Kubernetes monitoring
- Bitwarden - Helm chart for deploying bitwarden-rs - unofficial Bitwarden-compatible server
- Elastic - Official helm charts for Elatic.co's open source products (ElasticSearch, Kibana & filebeat)
- Mocktail - Helm chart for deploying the free, tiny mock api server Mocktail
- Helm Blob - Plugin that allows you to manage helm repositories on the blob storage like Azure Blob, GCS, S3, etc.
- Helm Diff - Plugin that shows a diff explaing what a
helm upgrade
andhelm rollback
would change. It can also compare two separate revisions of the release. - Helm Env - Plugin to show the environment variables available to a helm plugin.
- Helm Last - Plugin that shows the latest release interacted with. This is useful for chaining commands together like
helm status $(helm last)
. - Helm Local - Plugin to run Tiller (helm 2's server-side component) as a local daemon.
- Helm Nuke - Plugin that deletes and purges all releases stored by Tiller.
- Helm Secrets - Plugin to manage and store secrets safely.
- Helm Monitor - Plugin to monitor a release and rollback based on Prometheus/ElasticSearch query.
- Helm S3 - Plugin to fetch charts from S3.
- Helm Starter - Plugin that simplifies working with helm chart starter packs.
- Helm GCS - Plugin that manages chart repos on Google Cloud Storage privately.
- Helm GitHub - Plugin that detects and install Helm Charts from GitHub Public/Private Repository Releases.
- Helm Schema Gen - So that you don't have to write
values.schema.json
by hand from scratch for your Helm 3 charts - Helm Datree - Plugin to prevent Kubernetes misconfigurations by ensuring that Helm charts follow best practices as well as your organization’s policies
- Helm Teller - Plugin that allows you to manage deployment configuration and secrets from multiple providers securely with Teller
- Helm Release - Plugin that pulls(re-creates) Helm charts from deployed releases, also allows update values of deployed releases without supplying the chart(for modified or custom charts, or when there's no access to the chart)
Helm-related tools
- Keel.sh - Continuous delivery for Kubernetes - enhances Helm with auto upgrades and other cool features
- Helmfile - Helmfile is a declarative spec for deploying helm charts, supports flexible templating scenarios
- Helmsman - Helmsman provides a declarative way of installing charts, features terraform-like desired state file approach and security enhancements
- Reckoner - Reckoner is a tool to simplify management and installation of multiple Helm chart releases
- Monocular - A web-based application that enables the search and discovery of charts from multiple Helm Chart repositories
- Ship - A tool that makes it easy to watch and apply updates to Helm charts and integrates Kustomize patches and overlays
- Brigade - A tool for running scriptable, automated tasks in the cloud — as part of your Kubernetes cluster
- Helm-Starter-Istio - A helm starter for creating Istio managed services
- Helm Broker - A Service Broker which exposes Helm charts as Service Classes in the Service Catalog
- Chart Releaser - Helps Turn GitHub Repositories into Helm Chart Repositories
- ChartMuseum - ChartMuseum is an open-source, easy to deploy, Helm Chart Repository server.
- Helmify - Generates a Helm chart from Kubernetes yamls
- Helm Docs - Auto-generates documentation from helm charts into markdown files
- Chart Viewer - Helps you inspect and compare chart template and also rendered manifest
- werf - A CLI tool for implementing CI/CD best practices using an extended version of Helm under the hood for deployment
Forums, discussion groups, SO tags.
- Helm Slack - #helm-users channel on Kubernetes Slack
- StackOverflow Kubernetes-Helm - Stack Overflow threads tagged kubernetes-helm
- StackOverflow Helm - Stack Overflow threads tagged Helm
Contributions are most welcome!
Check out the Contributing Guidelines.
If you have any additional resources or links that you believe would benefit others, please feel free to contribute. Our goal is to create a repository of the best learning materials, ensuring everyone has access to top-notch content.
We appreciate your visit to this repository. If you find our initiatives valuable, kindly star this repository to show your support.
Thank you once again, and happy learning!