Deploy a Helm Chart

Octopus.HelmChartUpgrade exported 2026-07-22 by Octopus Deploy belongs to ‘Kubernetes’ category.

Upgrade a Helm chart from a package or Git repository, configuring release name, namespace, template values, and Helm options.

Parameters

When this step is included in a project’s deployment process, the parameters below can be set.

Chart Source

Octopus.Action.Script.ScriptSource (required)

The source of the Helm chart. Charts can be contained in a package or a Git repository.

Allowed values: Package, GitRepository

Default: Package

Chart Directory

Octopus.Action.Helm.ChartDirectory

Optionally specify the directory inside the package or Git repository where the chart is located.

Kubernetes Release Name

Octopus.Action.Helm.ReleaseName

The Helm release name. If a release by this name doesn’t already exist, an install will be run. Must consist of only lower case alphanumeric and dash characters.

Example: #{Octopus.Action.Name | ToLower}-#{Octopus.Environment.Name | ToLower}

Namespace

Octopus.Action.Helm.Namespace

The namespace the chart will be installed into. Overrides the target namespace and is passed as the —namespace option to the Helm client.

Template Values Sources

Octopus.Action.Helm.TemplateValuesSources

The sources for Helm template values. Provided as a JSON array describing chart values, inline YAML, key-value pairs, Git repository, or package-based values files.

Reset Values

Octopus.Action.Helm.ResetValues

When upgrading, reset the values to the ones built into the chart. Maps to —reset-values.

Allowed values: True, False

Default: True

Timeout

Octopus.Action.Helm.Timeout

The —timeout duration for Helm. Helm uses a default timeout of 300 seconds. When specifying the timeout, Helm expects a duration like 300s.

Example: 300s

Additional Parameters

Octopus.Action.Helm.AdditionalArgs

Additional parameters that will be passed to the helm upgrade command.

Custom Helm Executable

Octopus.Action.Helm.CustomHelmExecutable

The path to a custom Helm executable on the worker or target.

Resource Status Check

Octopus.Action.Kubernetes.ResourceStatusCheck

Whether to verify that Kubernetes objects reached their desired state. Maps to —wait.

Allowed values: True, False

Default: True

Wait for Jobs

Octopus.Action.Kubernetes.WaitForJobs

Whether to wait for Kubernetes Jobs to complete during the step. Maps to —wait-for-jobs.

Allowed values: True, False

Default: False

Optional features

Enable features by adding their IDs to Octopus.Action.EnabledFeatures (a comma-separated list).

Custom Deployment Scripts Octopus.Features.CustomScripts

Execute scripts during the deployment (pre-deploy, deploy, post-deploy) without embedding them in your package.

Octopus.Action.CustomScripts.PreDeploy.

Octopus.Action.CustomScripts.PreDeploy.<ext>

Pre-deploy script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Octopus.Action.CustomScripts.Deploy.

Octopus.Action.CustomScripts.Deploy.<ext>

Deploy-phase script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Octopus.Action.CustomScripts.PostDeploy.

Octopus.Action.CustomScripts.PostDeploy.<ext>

Post-deploy script body. The key’s is the script language extension: ps1 (PowerShell), sh (Bash), csx (C#), or py (Python).

Step configuration using OCL

Example in Octopus Configuration Language (OCL):

step "deploy-helm-chart" {
    name = "Deploy Helm Chart"
    properties = {
        Octopus.Action.TargetRoles = "k8s-cluster"
    }

    action {
        action_type = "Octopus.HelmChartUpgrade"
        properties = {
            Octopus.Action.Helm.Namespace = "default"
            Octopus.Action.Helm.ReleaseName = "myrelease"
            Octopus.Action.Helm.ResetValues = "True"
            Octopus.Action.Kubernetes.ResourceStatusCheck = "True"
            Octopus.Action.Package.DownloadOnTentacle = "False"
            Octopus.Action.Package.FeedId = "octopus-server-built-in"
            Octopus.Action.Package.PackageId = "my-chart"
            Octopus.Action.RunOnServer = "false"
            Octopus.Action.Script.ScriptSource = "Package"
        }

        packages {
            acquisition_location = "Server"
            feed = "octopus-server-built-in"
            package_id = "my-chart"
        }
    }
}

Page updated on Wednesday, July 22, 2026