Helm Contents
๐ Introduction to Helm
- What is Helm?
- Why use Helm for Kubernetes application deployment?
- Key components: Charts, Repositories, Releases
๐ Exploring the Official Helm Documentation
- Navigating helm.sh/docs
- Installation and prerequisites
- Understanding the Helm CLI and commands
- Helm 3 vs Helm 2 (brief overview)
๐งฉ Working with Existing Helm Charts
๐ Discovering and Using Helm Repositories
- Adding public and private chart repositories
- Searching for charts (
helm search hub vs helm search repo) - Repository management commands
๐ Deploying a Helm Release
- Installing a chart as a release
- Setting a namespace for the deployment
- Dry run and debug before actual deployment
โ๏ธ Customizing Charts with Values
- Understanding
values.yaml - Overriding values using:
- Custom
values.yaml files --set CLI option--set-file and --set-string
๐ Managing Helm Releases
- Upgrading a release with updated values or chart versions
- Rolling back to a previous release version
- Viewing and diffing historical release versions
- Uninstalling a release cleanly
๐ Multi-Environment Helm Usage
- Structuring values for different environments (dev, staging, prod)
- Folder-based environment separation
- Using
--values with multiple files for environment-specific configs
๐ ๏ธ Creating Your Own Helm Charts
โก Helm Chart Quick Start
helm create mychart- Directory structure explained
- Modifying the default template
๐งฌ Helm Template Engine and Syntax
- How Helm renders templates
- Using
{{ .Values }}, {{ .Chart }}, {{ .Release }} objects
๐ Built-in Objects and Functions
- Overview of available Helm objects
- Useful template functions (
include, required, lookup, toYaml, etc.) - Best practices in chart templating
๐งช Testing and Validating Charts
helm lint and template validation- Using
helm template for local rendering - Unit testing templates with tools like
helm-unittest
๐งฐ Troubleshooting and Tips
- Debugging with
--debug and --dry-run - Common errors and how to fix them
- Checking logs and Helm release history
- Understanding exit codes and command output