LinuxCommandLibrary

helm-install

Install Kubernetes applications via Helm charts

TLDR

Install a helm chart

$ helm install [name] [repository_name]/[chart_name]
copy

Install a helm chart from an unpacked chart directory
$ helm install [name] [path/to/source_directory]
copy

Install a helm chart from a URL
$ helm install [package_name] [https://example.com/charts/packagename-1.2.3.tgz]
copy

Install a helm chart and generate a name
$ helm install [repository_name]/[chart_name] [[-g|--generate-name]]
copy

Perform a dry run
$ helm install [name] [repository_name]/[chart_name] --dry-run
copy

Install a helm chart with custom values
$ helm install [name] [repository_name]/[chart_name] --set [parameter1]=[value1],[parameter2]=[value2]
copy

Install a helm chart passing a custom values file
$ helm install [name] [repository_name]/[chart_name] [[-f|--values]] [path/to/values.yaml]
copy

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.

SEE ALSO

helm(1), helm upgrade(1), helm list(1), helm uninstall(1), kubectl apply(1)

Copied to clipboard