helm-install
Install Kubernetes applications via Helm charts
TLDR
Install a helm chart
Install a helm chart from an unpacked chart directory
Install a helm chart from a URL
Install a helm chart and generate a name
Perform a dry run
Install a helm chart with custom values
Install a helm chart passing a custom values file
SYNOPSIS
helm install [RELEASE] CHART [flags]
PARAMETERS
--atomic
If set, upgrade will be rolled back on failure
--create-namespace
Creates the release namespace if not present
--debug
Enable verbose output
--dependency-update
Updates chart dependencies before installing
--description string
Add a custom description
--devel
Use development snapshots (implies --force --until=1)
--dry-run
Simulate an install (available in client and server modes)
--generate-name
Generate a release name if not specified
--namespace string
Namespace to install in (default: current)
--no-hooks
Skip running hooks for this release
--repo string
Chart repository URL
--set stringArray
Set values on the command line (can specify multiple or use --set-file)
--skip-crds
Skip installing CRDs
--timeout duration
Time to wait for any resource (default 5m0s)
--values valueFiles
Specify values in a YAML file (may be used multiple times)
--version string
Install specific chart version
--wait
Wait for resources to be ready before marking install successful
--wait-for-jobs
Wait for jobs to complete before marking install successful
DESCRIPTION
The helm install command deploys a pre-packaged application, known as a chart, onto a Kubernetes cluster. Helm is the package manager for Kubernetes, enabling users to define, install, and upgrade complex Kubernetes applications using charts—collections of YAML files describing Kubernetes resources like Deployments, Services, and ConfigMaps.
During installation, Helm renders chart templates with provided values, generating Kubernetes manifests, and then applies them via the Kubernetes API. It tracks the deployment as a release, allowing lifecycle management such as upgrades, rollbacks, and uninstalls. Charts can be sourced locally, from repositories (via --repo), or OCI registries.
Key benefits include parameterization for customization, dependency management for subcharts, and hooks for lifecycle events (pre/post-install). Flags control behavior like dry-runs for validation, atomic installs with auto-rollback on failure, CRD skipping, and waiting for readiness. Post-install, use helm list to view releases and helm status for details.
This command is essential for reproducible deployments in CI/CD pipelines and multi-environment setups, abstracting Kubernetes complexity while ensuring consistency across clusters.
CAVEATS
Requires kubectl access to a Kubernetes cluster and Helm CLI v3+. Does not handle chart validation beyond basic checks unless --dry-run used. Atomic mode may leave namespace if all pods fail. Deprecated flags like --replace and --force ignored in v3.
EXAMPLES
helm install my-nginx bitnami/nginx
helm install my-release stable/mysql --set mysqlRootPassword=secret --namespace prod
helm install --dry-run --debug my-release ./chart-dir
CHART SOURCES
CHART can be: local path (./mychart), repo/chart (bitnami/nginx), tgz file, or OCI URL (oci://registry/chart)
HISTORY
Introduced in Helm v1 (2016) as part of early Kubernetes package management. Reworked in Helm v2 (2017) with server-side Tiller component. Helm v3 (2019) removed Tiller for client-only model, simplifying helm install to direct Kubernetes interactions via improved templating and OCI support. Actively maintained by CNCF.


