Use a local Helm chart
This topic describes how to use a Helm chart installed on the Harness Delegate disk.
Harness supports Helm charts stored in a remote Helm Chart Repository, such as ChartMuseum. In some cases, you might be deploying the same Helm chart and version to many clusters/namespaces in parallel. This can cause many identical downloads and performance issues.
To support this use case, Harness includes the option of using a local chart installed on the Harness Delegate local disk.
Harness will check for the existence of the Helm chart on the local delegate disk, and then proceed to download from the remote repo only if the chart is not found.
Using a local Helm chart eliminates identical downloads and their related performance issues.
New to Helm deployments in Harness? Review Helm Chart Deployment Tutorial and Native Helm Deployment Tutorial. For extensive details, go to Deploy Helm Charts.
Add installation script to the delegate YAML
Install the chart on the delegate host. The delegate host must have Helm installed on it. Harness installs Helm with the delegate automatically, so you don't need to do anything unless you have removed Helm for the delegate host. For information on the Helm binaries installed by default, see Supported platforms and technologies. You can install the chart manually on the host, but it is easier to install it using the
INIT_SCRIPTenvironment variable in the delegate YAML.Add the
INIT_SCRIPTenvironment variable to the StatefulSet (legacy delegate) or deployment (delegate with an immutable image type) object in the delegate YAML, and add your Helm chart installation script.For information on using
INIT_SCRIPT, go to Build custom delegate images with third-party tools.For information on installing Helm charts, go to Helm's documentation for Helm Install.
Add the Helm local repo environment variable to delegate YAML
You need to provide the path to the local chart in the delegate YAML using the HELM_LOCAL_REPOSITORY environment variable.
Add the
HELM_LOCAL_REPOSITORYenvironment variable to the StatefulSet (legacy delegate) or deployment (delegate with an immutable image type) object in the delegate YAML.
The format should be:
<basePath>/<repoName(encoded)>/<chartName>/<version>/chartName/
Here's an example:
...
env:
- name: HELM_LOCAL_REPOSITORY
value: "./repository/helm/source/69434bd8-4b9d-37d8-a61f-63df65cd8206/nginx/0.1.0/nginx"
...If the chart version is not included, Harness will fetch the latest version.
The HELM_LOCAL_REPOSITORY environment variable is the same for both delegate types.
Base path
You can also use the base path for value. For example:
Important notes
Review the following important notes.
Last updated
Was this helpful?

