kubernetes.helm.sh/v3.Release

A Release is an instance of a chart running in a Kubernetes cluster. A Chart is a Helm package. It contains all the resource definitions necessary to run an application, tool, or service inside a Kubernetes cluster.

This resource models a Helm Release as if it were created by the Helm CLI. The underlying implementation embeds Helm as a library to perform the orchestration of the resources. As a result, the full spectrum of Helm features are supported natively.

Example Usage

Local Chart Directory

using Pulumi;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var nginx = new Release("nginx-ingress", new ReleaseArgs
        {
            Chart = "./nginx-ingress",
        });

    }
}
package main

import (
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
			Chart: pulumi.String("./nginx-ingress"),
		})
		if err != nil {
			return err
		}

		return nil
	})
}

Coming soon!

from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs

nginx_ingress = Release(
    "nginx-ingress",
    ReleaseArgs(
        chart="./nginx-ingress",
    ),
)
import * as k8s from "@pulumi/kubernetes";

const nginxIngress = new k8s.helm.v3.Release("nginx-ingress", {
    chart: "./nginx-ingress",
});

Coming soon!

Remote Chart

using Pulumi;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var nginx = new Release("nginx-ingress", new ReleaseArgs
        {
            Chart = "nginx-ingress",
            Version = "1.24.4",
            RepositoryOpts = new RepositoryOptsArgs
            {
                Repo = "https://charts.helm.sh/stable"
            }
        });

    }
}
package main

import (
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
			Chart:   pulumi.String("nginx-ingress"),
			Version: pulumi.String("1.24.4"),
			RepositoryOpts: helm.RepositoryOptsArgs{
				Repo: pulumi.String("https://charts.helm.sh/stable"),
			},
		})
		if err != nil {
			return err
		}

		return nil
	})
}

Coming soon!

from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs, RepositoryOptsArgs

nginx_ingress = Release(
    "nginx-ingress",
    ReleaseArgs(
        chart="nginx-ingress",
        version="1.24.4",
        repository_opts=RepositoryOptsArgs(
            repo="https://charts.helm.sh/stable",
        ),
    ),
)
import * as k8s from "@pulumi/kubernetes";

const nginxIngress = new k8s.helm.v3.Release("nginx-ingress", {
    chart: "nginx-ingress",
    version: "1.24.4",
    repositoryOpts: {
        repo: "https://charts.helm.sh/stable",
    },
});

Coming soon!

Set Chart Values

using System.Collections.Generic;
using Pulumi;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var values = new Dictionary<string, object>
        {
            ["controller"] = new Dictionary<string, object>
            {
                ["metrics"] = new Dictionary<string, object>
                {
                    ["enabled"] = true
                }
            },
        };

        var nginx = new Release("nginx-ingress", new ReleaseArgs
        {
            Chart = "nginx-ingress",
            Version = "1.24.4",
            RepositoryOpts = new RepositoryOptsArgs
            {
                Repo = "https://charts.helm.sh/stable"
            },
            Values = values,
        });

    }
}
package main

import (
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
			Chart:   pulumi.String("nginx-ingress"),
			Version: pulumi.String("1.24.4"),
			RepositoryOpts: helm.RepositoryOptsArgs{
				Repo: pulumi.String("https://charts.helm.sh/stable"),
			},
			Values: pulumi.Map{
				"controller": pulumi.Map{
					"metrics": pulumi.Map{
						"enabled": pulumi.Bool(true),
					},
				},
			},
		})
		if err != nil {
			return err
		}

		return nil
	})
}

Coming soon!

from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs, RepositoryOptsArgs

nginx_ingress = Release(
    "nginx-ingress",
    ReleaseArgs(
        chart="nginx-ingress",
        version="1.24.4",
        repository_opts=RepositoryOptsArgs(
            repo="https://charts.helm.sh/stable",
        ),
        values={
            "controller": {
                "metrics": {
                    "enabled": True,
                },
            },
        },
    ),
)
import * as k8s from "@pulumi/kubernetes";

const nginxIngress = new k8s.helm.v3.Release("nginx-ingress", {
    chart: "nginx-ingress",
    version: "1.24.4",
    repositoryOpts: {
        repo: "https://charts.helm.sh/stable",
    },
    values: {
        controller: {
            metrics: {
                enabled: true,
            }
        }
    },
});

Coming soon!

Deploy Chart into Namespace

using Pulumi;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var nginx = new Release("nginx-ingress", new ReleaseArgs
        {
            Chart = "nginx-ingress",
            Version = "1.24.4",
            Namespace = "test-namespace",
            RepositoryOpts = new RepositoryOptsArgs
            {
                Repo = "https://charts.helm.sh/stable"
            },
        });

    }
}
package main

import (
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
			Chart:     pulumi.String("nginx-ingress"),
			Version:   pulumi.String("1.24.4"),
			Namespace: pulumi.String("test-namespace"),
			RepositoryOpts: helm.RepositoryOptsArgs{
				Repo: pulumi.String("https://charts.helm.sh/stable"),
			},
		})
		if err != nil {
			return err
		}

		return nil
	})
}

Coming soon!

from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs, RepositoryOptsArgs

nginx_ingress = Release(
    "nginx-ingress",
    ReleaseArgs(
        chart="nginx-ingress",
        version="1.24.4",
        namespace="test-namespace",
        repository_opts=RepositoryOptsArgs(
            repo="https://charts.helm.sh/stable",
        ),
    ),
)
import * as k8s from "@pulumi/kubernetes";

const nginxIngress = new k8s.helm.v3.Release("nginx-ingress", {
    chart: "nginx-ingress",
    version: "1.24.4",
    namespace: "test-namespace",
    repositoryOpts: {
        repo: "https://charts.helm.sh/stable",
    },
});

Coming soon!

Depend on a Chart resource

using System.Threading.Tasks;
using Pulumi;
using Pulumi.Kubernetes.Core.V1;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var nginx = new Release("nginx-ingress", new ReleaseArgs
        {
            Chart = "nginx-ingress",
            Version = "1.24.4",
            Namespace = "test-namespace",
            RepositoryOpts = new RepositoryOptsArgs
            {
                Repo = "https://charts.helm.sh/stable"
            },
            SkipAwait = false,
        });

        // Create a ConfigMap depending on the Chart. The ConfigMap will not be created until after all of the Chart
        // resources are ready. Notice SkipAwait is set to false above. This is the default and will cause Helm
        // to await the underlying resources to be available. Setting it to true will make the ConfigMap available right away.
        new ConfigMap("foo", new Pulumi.Kubernetes.Types.Inputs.Core.V1.ConfigMapArgs
        {
            Data = new InputMap<string>
            {
                {"foo", "bar"}
            },
        }, new CustomResourceOptions
        {
            DependsOn = nginx,
        });

    }
}
package main

import (
	corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1"
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		release, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
			Chart:     pulumi.String("nginx-ingress"),
			Version:   pulumi.String("1.24.4"),
			Namespace: pulumi.String("test-namespace"),
			RepositoryOpts: helm.RepositoryOptsArgs{
				Repo: pulumi.String("https://charts.helm.sh/stable"),
			},
			SkipAwait: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}

		// Create a ConfigMap depending on the Chart. The ConfigMap will not be created until after all of the Chart
		// resources are ready. Notice SkipAwait is set to false above. This is the default and will cause Helm
		// to await the underlying resources to be available. Setting it to true will make the ConfigMap available right away.
		_, err = corev1.NewConfigMap(ctx, "cm", &corev1.ConfigMapArgs{
			Data: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
		}, pulumi.DependsOnInputs(release))
		if err != nil {
			return err
		}

		return nil
	})
}

Coming soon!

import pulumi
from pulumi_kubernetes.core.v1 import ConfigMap, ConfigMapInitArgs
from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs, RepositoryOptsArgs

nginx_ingress = Release(
    "nginx-ingress",
    ReleaseArgs(
        chart="nginx-ingress",
        version="1.24.4",
        namespace="test-namespace",
        repository_opts=RepositoryOptsArgs(
            repo="https://charts.helm.sh/stable",
        ),
        skip_await=False,
    ),
)

# Create a ConfigMap depending on the Chart. The ConfigMap will not be created until after all of the Chart
# resources are ready. Notice skip_await is set to false above. This is the default and will cause Helm
# to await the underlying resources to be available. Setting it to true will make the ConfigMap available right away.
ConfigMap("foo", ConfigMapInitArgs(data={"foo": "bar"}), opts=pulumi.ResourceOptions(depends_on=nginx_ingress))
import * as k8s from "@pulumi/kubernetes";

const nginxIngress = new k8s.helm.v3.Release("nginx-ingress", {
    chart: "nginx-ingress",
    version: "1.24.4",
    namespace: "test-namespace",
    repositoryOpts: {
        repo: "https://charts.helm.sh/stable",
    },
    skipAwait: false,
});

// Create a ConfigMap depending on the Chart. The ConfigMap will not be created until after all of the Chart
// resources are ready. Notice skipAwait is set to false above. This is the default and will cause Helm
// to await the underlying resources to be available. Setting it to true will make the ConfigMap available right away.
new k8s.core.v1.ConfigMap("foo", {
    metadata: {namespace: namespaceName},
    data: {foo: "bar"}
}, {dependsOn: nginxIngress})

Coming soon!

Specify Helm Chart Values in File and Code

using System.Collections.Generic;
using Pulumi;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var nginx = new Release("redis", new ReleaseArgs
        {
            Chart = "redis",
            RepositoryOpts = new RepositoryOptsArgs
            {
                Repo = "https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami"
            },
            ValueYamlFiles = new FileAsset("./metrics.yml");
            Values = new InputMap<object>
            {
                ["cluster"] = new Dictionary<string,object>
                {
                    ["enabled"] = true,
                },
                ["rbac"] = new Dictionary<string,object>
                {
                    ["create"] = true,
                }
            },
        });
    }
}

// -- Contents of metrics.yml --
// metrics:
//     enabled: true
package main

import (
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/yaml"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := helm.NewRelease(ctx, "redis", helm.ReleaseArgs{
			Chart:   pulumi.String("redis"),
			RepositoryOpts: helm.RepositoryOptsArgs{
				Repo: pulumi.String("https://charts.helm.sh/stable"),
			},
			ValueYamlFiles: pulumi.NewFileAsset("./metrics.yml"),
			Value: pulumi.Map{
				"cluster": pulumi.Map{
					"enabled": pulumi.Bool(true),
				},
				"rbac": pulumi.Map{
					"create": pulumi.Bool(true),
				},
			},
		})
		if err != nil {
			return err
		}

		return nil
	})
}

// -- Contents of metrics.yml --
// metrics:
//     enabled: true

Coming soon!

import pulumi
from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs, RepositoryOptsArgs

nginx_ingress = Release(
    "redis",
    ReleaseArgs(
        chart="redis",
        repository_opts=RepositoryOptsArgs(
            repo="https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami",
        ),
        value_yaml_files=[pulumi.FileAsset("./metrics.yml")],
        values={
            cluster: {
                enabled: true,
            },
            rbac: {
                create: true,
            }
        },
    ),
)

# -- Contents of metrics.yml --
# metrics:
#     enabled: true
import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";
import {FileAsset} from "@pulumi/pulumi/asset";

const release = new k8s.helm.v3.Release("redis", {
    chart: "redis",
    repositoryOpts: {
        repo: "https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami",
    },
    valueYamlFiles: [new FileAsset("./metrics.yml")],
    values: {
        cluster: {
            enabled: true,
        },
        rbac: {
            create: true,
        }
    },
});

// -- Contents of metrics.yml --
// metrics:
//     enabled: true

Coming soon!

Query Kubernetes Resource Installed By Helm Chart

using System.Collections.Generic;
using Pulumi;
using Pulumi.Kubernetes.Types.Inputs.Helm.V3;
using Pulumi.Kubernetes.Helm.V3;

class HelmStack : Stack
{
    public HelmStack()
    {
        var redis = new Release("redis", new ReleaseArgs
        {
            Chart = "redis",
            RepositoryOpts = new RepositoryOptsArgs
            {
                Repo = "https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami"
            },
            Values = new InputMap<object>
            {
                ["cluster"] = new Dictionary<string,object>
                {
                    ["enabled"] = true,
                },
                ["rbac"] = new Dictionary<string,object>
                {
                    ["create"] = true,
                }
            },
        });

        var status = redis.Status;
        // srv will only resolve after the redis chart is installed.
        var srv = Service.Get("redist-master-svc", Output.All(status).Apply(
            s => $"{s[0].Namespace}/{s[0].Name}-master"));
        this.RedisMasterClusterIP = srv.Spec.Apply(spec => spec.ClusterIP);
    }

    [Output]
    public Output<string> RedisMasterClusterIP { get; set; }
}
package main

import (
	"fmt"

	corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1"
	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		rel, err := helm.NewRelease(ctx, "redis", &helm.ReleaseArgs{
			Chart: pulumi.String("redis"),
			RepositoryOpts: helm.RepositoryOptsArgs{
				Repo: pulumi.String("https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami"),
			},
			Values: pulumi.Map{
				"cluster": pulumi.Map{
					"enabled": pulumi.Bool(true),
				},
				"rbac": pulumi.BoolMap{
					"create": pulumi.Bool(true),
				},
			},
		})
		if err != nil {
			return err
		}

		// srv will only resolve after the redis chart is installed.
		srv := pulumi.All(rel.Status.Namespace(), rel.Status.Name()).
			ApplyT(func(r interface{}) (interface{}, error) {
				arr := r.([]interface{})
				namespace := arr[0].(*string)
				name := arr[1].(*string)
				svc, err := corev1.GetService(ctx,
					"redis-master-svc",
					pulumi.ID(fmt.Sprintf("%s/%s-master", *namespace, *name)),
					nil,
				)
				if err != nil {
					return "", nil
				}
				return svc.Spec.ClusterIP(), nil
			})
		ctx.Export("redisMasterClusterIP", srv)

		return nil
	})
}

Coming soon!

from pulumi import Output
from pulumi_kubernetes.core.v1 import Service
from pulumi_kubernetes.helm.v3 import Release, ReleaseArgs, RepositoryOptsArgs

redis = Release(
    "redis",
    ReleaseArgs(
        chart="redis",
        repository_opts=RepositoryOptsArgs(
            repo="https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami",
        ),
        values={
            "cluster": {
                "enabled": True,
            },
            "rbac": {
                "create": True,
            }
        },
    ),
)

# srv will only resolve after the redis chart is installed.
srv = Service.get("redis-master-svc", Output.concat(redis.status.namespace, "/", redis.status.name, "-master"))
pulumi.export("redisMasterClusterIP", srv.spec.cluster_ip)
import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";
import {FileAsset} from "@pulumi/pulumi/asset";

const redis = new k8s.helm.v3.Release("redis", {
    chart: "redis",
    repositoryOpts: {
        repo: "https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami",
    },
    values: {
        cluster: {
            enabled: true,
        },
        rbac: {
            create: true,
        }
    },
});

// srv will only resolve after the redis chart is installed.
const srv = k8s.core.v1.Service.get("redis-master-svc", pulumi.interpolate`${redis.status.namespace}/${redis.status.name}-master`);
export const redisMasterClusterIP = srv.spec.clusterIP;

Coming soon!

Create Release Resource

new Release(name: string, args: ReleaseOpts, opts?: ComponentResourceOptions);
@overload
def Release(resource_name: str,
            opts: Optional[ResourceOptions] = None,
            allow_null_values: Optional[bool] = None,
            atomic: Optional[bool] = None,
            chart: Optional[str] = None,
            cleanup_on_fail: Optional[bool] = None,
            create_namespace: Optional[bool] = None,
            dependency_update: Optional[bool] = None,
            description: Optional[str] = None,
            devel: Optional[bool] = None,
            disable_crd_hooks: Optional[bool] = None,
            disable_openapi_validation: Optional[bool] = None,
            disable_webhooks: Optional[bool] = None,
            force_update: Optional[bool] = None,
            keyring: Optional[str] = None,
            lint: Optional[bool] = None,
            manifest: Optional[Mapping[str, Any]] = None,
            max_history: Optional[int] = None,
            name: Optional[str] = None,
            namespace: Optional[str] = None,
            postrender: Optional[str] = None,
            recreate_pods: Optional[bool] = None,
            render_subchart_notes: Optional[bool] = None,
            replace: Optional[bool] = None,
            repository_opts: Optional[_helm_sh.v3.RepositoryOptsArgs] = None,
            reset_values: Optional[bool] = None,
            resource_names: Optional[Mapping[str, Sequence[str]]] = None,
            reuse_values: Optional[bool] = None,
            skip_await: Optional[bool] = None,
            skip_crds: Optional[bool] = None,
            timeout: Optional[int] = None,
            value_yaml_files: Optional[Sequence[Union[pulumi.Asset, pulumi.Archive]]] = None,
            values: Optional[Mapping[str, Any]] = None,
            verify: Optional[bool] = None,
            version: Optional[str] = None,
            wait_for_jobs: Optional[bool] = None)
@overload
def Release(resource_name: str,
            args: ReleaseArgs,
            opts: Optional[ResourceOptions] = None)
func NewRelease(ctx *Context, name string, args ReleaseArgs, opts ...ResourceOption) (*Release, error)
public Release(string name, ReleaseArgs args, ComponentResourceOptions? opts = null)
public Release(String name, ReleaseArgs args)
public Release(String name, ReleaseArgs args, ComponentResourceOptions options)
type: kubernetes:helm.sh/v3:Release
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args ReleaseOpts
The arguments to resource properties.
opts ComponentResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args ReleaseArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args ReleaseArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args ReleaseArgs
The arguments to resource properties.
opts ComponentResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args ReleaseArgs
The arguments to resource properties.
options ComponentResourceOptions
Bag of options to control resource's behavior.

Release Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The Release resource accepts the following input properties:

Chart string

Chart name to be installed. A path may be used.

AllowNullValues bool

Whether to allow Null values in helm chart configs.

Atomic bool

If set, installation process purges chart on fail. skipAwait will be disabled automatically if atomic is used.

CleanupOnFail bool

Allow deletion of new resources created in this upgrade when upgrade fails.

CreateNamespace bool

Create the namespace if it does not exist.

DependencyUpdate bool

Run helm dependency update before installing the chart.

Description string

Add a custom description

Devel bool

Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored.

DisableCRDHooks bool

Prevent CRD hooks from running, but run other hooks. See helm install --no-crd-hook

DisableOpenapiValidation bool

If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema

DisableWebhooks bool

Prevent hooks from running.

ForceUpdate bool

Force resource update through delete/recreate if needed.

Keyring string

Location of public keys used for verification. Used only if verify is true

Lint bool

Run helm lint when planning.

Manifest Dictionary<string, object>

The rendered manifests as JSON. Not yet supported.

MaxHistory int

Limit the maximum number of revisions saved per release. Use 0 for no limit.

Name string

Release name.

Namespace string

Namespace to install the release into.

Postrender string

Postrender command to run.

RecreatePods bool

Perform pods restart during upgrade/rollback.

RenderSubchartNotes bool

If set, render subchart notes along with the parent.

Replace bool

Re-use the given name, even if that name is already used. This is unsafe in production

RepositoryOpts RepositoryOptsArgs

Specification defining the Helm chart repository to use.

ResetValues bool

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

ResourceNames Dictionary<string, ImmutableArray<string>>

Names of resources created by the release grouped by "kind/version".

ReuseValues bool

When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored

SkipAwait bool

By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.

SkipCrds bool

If set, no CRDs will be installed. By default, CRDs are installed if not already present.

Timeout int

Time in seconds to wait for any individual kubernetes operation.

ValueYamlFiles List<AssetOrArchive>

List of assets (raw yaml files). Content is read and merged with values.

Values Dictionary<string, object>

Custom values set for the release.

Verify bool

Verify the package before installing it.

Version string

Specify the exact chart version to install. If this is not specified, the latest version is installed.

WaitForJobs bool

Will wait until all Jobs have been completed before marking the release as successful. This is ignored if skipAwait is enabled.

Chart string

Chart name to be installed. A path may be used.

AllowNullValues bool

Whether to allow Null values in helm chart configs.

Atomic bool

If set, installation process purges chart on fail. skipAwait will be disabled automatically if atomic is used.

CleanupOnFail bool

Allow deletion of new resources created in this upgrade when upgrade fails.

CreateNamespace bool

Create the namespace if it does not exist.

DependencyUpdate bool

Run helm dependency update before installing the chart.

Description string

Add a custom description

Devel bool

Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored.

DisableCRDHooks bool

Prevent CRD hooks from running, but run other hooks. See helm install --no-crd-hook

DisableOpenapiValidation bool

If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema

DisableWebhooks bool

Prevent hooks from running.

ForceUpdate bool

Force resource update through delete/recreate if needed.

Keyring string

Location of public keys used for verification. Used only if verify is true

Lint bool

Run helm lint when planning.

Manifest map[string]interface{}

The rendered manifests as JSON. Not yet supported.

MaxHistory int

Limit the maximum number of revisions saved per release. Use 0 for no limit.

Name string

Release name.

Namespace string

Namespace to install the release into.

Postrender string

Postrender command to run.

RecreatePods bool

Perform pods restart during upgrade/rollback.

RenderSubchartNotes bool

If set, render subchart notes along with the parent.

Replace bool

Re-use the given name, even if that name is already used. This is unsafe in production

RepositoryOpts RepositoryOptsArgs

Specification defining the Helm chart repository to use.

ResetValues bool

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

ResourceNames map[string][]string

Names of resources created by the release grouped by "kind/version".

ReuseValues bool

When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored

SkipAwait bool

By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.

SkipCrds bool

If set, no CRDs will be installed. By default, CRDs are installed if not already present.

Timeout int

Time in seconds to wait for any individual kubernetes operation.

ValueYamlFiles AssetOrArchive

List of assets (raw yaml files). Content is read and merged with values.

Values map[string]interface{}

Custom values set for the release.

Verify bool

Verify the package before installing it.

Version string

Specify the exact chart version to install. If this is not specified, the latest version is installed.

WaitForJobs bool

Will wait until all Jobs have been completed before marking the release as successful. This is ignored if skipAwait is enabled.

chart String

Chart name to be installed. A path may be used.

allowNullValues Boolean

Whether to allow Null values in helm chart configs.

atomic Boolean

If set, installation process purges chart on fail. skipAwait will be disabled automatically if atomic is used.

cleanupOnFail Boolean

Allow deletion of new resources created in this upgrade when upgrade fails.

createNamespace Boolean

Create the namespace if it does not exist.

dependencyUpdate Boolean

Run helm dependency update before installing the chart.

description String

Add a custom description

devel Boolean

Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored.

disableCRDHooks Boolean

Prevent CRD hooks from running, but run other hooks. See helm install --no-crd-hook

disableOpenapiValidation Boolean

If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema

disableWebhooks Boolean

Prevent hooks from running.

forceUpdate Boolean

Force resource update through delete/recreate if needed.

keyring String

Location of public keys used for verification. Used only if verify is true

lint Boolean

Run helm lint when planning.

manifest Map<String,Object>

The rendered manifests as JSON. Not yet supported.

maxHistory Integer

Limit the maximum number of revisions saved per release. Use 0 for no limit.

name String

Release name.

namespace String

Namespace to install the release into.

postrender String

Postrender command to run.

recreatePods Boolean

Perform pods restart during upgrade/rollback.

renderSubchartNotes Boolean

If set, render subchart notes along with the parent.

replace Boolean

Re-use the given name, even if that name is already used. This is unsafe in production

repositoryOpts RepositoryOptsArgs

Specification defining the Helm chart repository to use.

resetValues Boolean

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

resourceNames Map<String,List<String>>

Names of resources created by the release grouped by "kind/version".

reuseValues Boolean

When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored

skipAwait Boolean

By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.

skipCrds Boolean

If set, no CRDs will be installed. By default, CRDs are installed if not already present.

timeout Integer

Time in seconds to wait for any individual kubernetes operation.

valueYamlFiles List<AssetOrArchive>

List of assets (raw yaml files). Content is read and merged with values.

values Map<String,Object>

Custom values set for the release.

verify Boolean

Verify the package before installing it.

version String

Specify the exact chart version to install. If this is not specified, the latest version is installed.

waitForJobs Boolean

Will wait until all Jobs have been completed before marking the release as successful. This is ignored if skipAwait is enabled.

chart string

Chart name to be installed. A path may be used.

allowNullValues boolean

Whether to allow Null values in helm chart configs.

atomic boolean

If set, installation process purges chart on fail. skipAwait will be disabled automatically if atomic is used.

cleanupOnFail boolean

Allow deletion of new resources created in this upgrade when upgrade fails.

createNamespace boolean

Create the namespace if it does not exist.

dependencyUpdate boolean

Run helm dependency update before installing the chart.

description string

Add a custom description

devel boolean

Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored.

disableCRDHooks boolean

Prevent CRD hooks from running, but run other hooks. See helm install --no-crd-hook

disableOpenapiValidation boolean

If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema

disableWebhooks boolean

Prevent hooks from running.

forceUpdate boolean

Force resource update through delete/recreate if needed.

keyring string

Location of public keys used for verification. Used only if verify is true

lint boolean

Run helm lint when planning.

manifest {[key: string]: any}

The rendered manifests as JSON. Not yet supported.

maxHistory number

Limit the maximum number of revisions saved per release. Use 0 for no limit.

name string

Release name.

namespace string

Namespace to install the release into.

postrender string

Postrender command to run.

recreatePods boolean

Perform pods restart during upgrade/rollback.

renderSubchartNotes boolean

If set, render subchart notes along with the parent.

replace boolean

Re-use the given name, even if that name is already used. This is unsafe in production

repositoryOpts helm.sh.v3.RepositoryOptsArgs

Specification defining the Helm chart repository to use.

resetValues boolean

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

resourceNames {[key: string]: string[]}

Names of resources created by the release grouped by "kind/version".

reuseValues boolean

When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored

skipAwait boolean

By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.

skipCrds boolean

If set, no CRDs will be installed. By default, CRDs are installed if not already present.

timeout number

Time in seconds to wait for any individual kubernetes operation.

valueYamlFiles (pulumi.asset.Asset | pulumi.asset.Archive)[]

List of assets (raw yaml files). Content is read and merged with values.

values {[key: string]: any}

Custom values set for the release.

verify boolean

Verify the package before installing it.

version string

Specify the exact chart version to install. If this is not specified, the latest version is installed.

waitForJobs boolean

Will wait until all Jobs have been completed before marking the release as successful. This is ignored if skipAwait is enabled.

chart str

Chart name to be installed. A path may be used.

allow_null_values bool

Whether to allow Null values in helm chart configs.

atomic bool

If set, installation process purges chart on fail. skipAwait will be disabled automatically if atomic is used.

cleanup_on_fail bool

Allow deletion of new resources created in this upgrade when upgrade fails.

create_namespace bool

Create the namespace if it does not exist.

dependency_update bool

Run helm dependency update before installing the chart.

description str

Add a custom description

devel bool

Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored.

disable_crd_hooks bool

Prevent CRD hooks from running, but run other hooks. See helm install --no-crd-hook

disable_openapi_validation bool

If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema

disable_webhooks bool

Prevent hooks from running.

force_update bool

Force resource update through delete/recreate if needed.

keyring str

Location of public keys used for verification. Used only if verify is true

lint bool

Run helm lint when planning.

manifest Mapping[str, Any]

The rendered manifests as JSON. Not yet supported.

max_history int

Limit the maximum number of revisions saved per release. Use 0 for no limit.

name str

Release name.

namespace str

Namespace to install the release into.

postrender str

Postrender command to run.

recreate_pods bool

Perform pods restart during upgrade/rollback.

render_subchart_notes bool

If set, render subchart notes along with the parent.

replace bool

Re-use the given name, even if that name is already used. This is unsafe in production

repository_opts RepositoryOptsArgs

Specification defining the Helm chart repository to use.

reset_values bool

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

resource_names Mapping[str, Sequence[str]]

Names of resources created by the release grouped by "kind/version".

reuse_values bool

When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored

skip_await bool

By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.

skip_crds bool

If set, no CRDs will be installed. By default, CRDs are installed if not already present.

timeout int

Time in seconds to wait for any individual kubernetes operation.

value_yaml_files Archive]]

List of assets (raw yaml files). Content is read and merged with values.

values Mapping[str, Any]

Custom values set for the release.

verify bool

Verify the package before installing it.

version str

Specify the exact chart version to install. If this is not specified, the latest version is installed.

wait_for_jobs bool

Will wait until all Jobs have been completed before marking the release as successful. This is ignored if skipAwait is enabled.

chart String

Chart name to be installed. A path may be used.

allowNullValues Boolean

Whether to allow Null values in helm chart configs.

atomic Boolean

If set, installation process purges chart on fail. skipAwait will be disabled automatically if atomic is used.

cleanupOnFail Boolean

Allow deletion of new resources created in this upgrade when upgrade fails.

createNamespace Boolean

Create the namespace if it does not exist.

dependencyUpdate Boolean

Run helm dependency update before installing the chart.

description String

Add a custom description

devel Boolean

Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored.

disableCRDHooks Boolean

Prevent CRD hooks from running, but run other hooks. See helm install --no-crd-hook

disableOpenapiValidation Boolean

If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema

disableWebhooks Boolean

Prevent hooks from running.

forceUpdate Boolean

Force resource update through delete/recreate if needed.

keyring String

Location of public keys used for verification. Used only if verify is true

lint Boolean

Run helm lint when planning.

manifest Map<Any>

The rendered manifests as JSON. Not yet supported.

maxHistory Number

Limit the maximum number of revisions saved per release. Use 0 for no limit.

name String

Release name.

namespace String

Namespace to install the release into.

postrender String

Postrender command to run.

recreatePods Boolean

Perform pods restart during upgrade/rollback.

renderSubchartNotes Boolean

If set, render subchart notes along with the parent.

replace Boolean

Re-use the given name, even if that name is already used. This is unsafe in production

repositoryOpts Property Map

Specification defining the Helm chart repository to use.

resetValues Boolean

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

resourceNames Map<List<String>>

Names of resources created by the release grouped by "kind/version".

reuseValues Boolean

When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored

skipAwait Boolean

By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.

skipCrds Boolean

If set, no CRDs will be installed. By default, CRDs are installed if not already present.

timeout Number

Time in seconds to wait for any individual kubernetes operation.

valueYamlFiles List<Asset>

List of assets (raw yaml files). Content is read and merged with values.

values Map<Any>

Custom values set for the release.

verify Boolean

Verify the package before installing it.

version String

Specify the exact chart version to install. If this is not specified, the latest version is installed.

waitForJobs Boolean

Will wait until all Jobs have been completed before marking the release as successful. This is ignored if skipAwait is enabled.

Outputs

All input properties are implicitly available as output properties. Additionally, the Release resource produces the following output properties:

Id string

The provider-assigned unique ID for this managed resource.

Status ReleaseStatus

Status of the deployed release.

Id string

The provider-assigned unique ID for this managed resource.

Status ReleaseStatus

Status of the deployed release.

id String

The provider-assigned unique ID for this managed resource.

status ReleaseStatus

Status of the deployed release.

id string

The provider-assigned unique ID for this managed resource.

status helm.sh.v3.ReleaseStatus

Status of the deployed release.

id str

The provider-assigned unique ID for this managed resource.

status ReleaseStatus

Status of the deployed release.

id String

The provider-assigned unique ID for this managed resource.

status Property Map

Status of the deployed release.

Supporting Types

ReleaseStatus

Status string

Status of the release.

AppVersion string

The version number of the application being deployed.

Chart string

The name of the chart.

Name string

Name is the name of the release.

Namespace string

Namespace is the kubernetes namespace of the release.

Revision int

Version is an int32 which represents the version of the release.

Version string

A SemVer 2 conformant version string of the chart.

Status string

Status of the release.

AppVersion string

The version number of the application being deployed.

Chart string

The name of the chart.

Name string

Name is the name of the release.

Namespace string

Namespace is the kubernetes namespace of the release.

Revision int

Version is an int32 which represents the version of the release.

Version string

A SemVer 2 conformant version string of the chart.

status String

Status of the release.

appVersion String

The version number of the application being deployed.

chart String

The name of the chart.

name String

Name is the name of the release.

namespace String

Namespace is the kubernetes namespace of the release.

revision Integer

Version is an int32 which represents the version of the release.

version String

A SemVer 2 conformant version string of the chart.

status string

Status of the release.

appVersion string

The version number of the application being deployed.

chart string

The name of the chart.

name string

Name is the name of the release.

namespace string

Namespace is the kubernetes namespace of the release.

revision number

Version is an int32 which represents the version of the release.

version string

A SemVer 2 conformant version string of the chart.

status str

Status of the release.

app_version str

The version number of the application being deployed.

chart str

The name of the chart.

name str

Name is the name of the release.

namespace str

Namespace is the kubernetes namespace of the release.

revision int

Version is an int32 which represents the version of the release.

version str

A SemVer 2 conformant version string of the chart.

status String

Status of the release.

appVersion String

The version number of the application being deployed.

chart String

The name of the chart.

name String

Name is the name of the release.

namespace String

Namespace is the kubernetes namespace of the release.

revision Number

Version is an int32 which represents the version of the release.

version String

A SemVer 2 conformant version string of the chart.

RepositoryOpts

CaFile string

The Repository's CA File

CertFile string

The repository's cert file

KeyFile string

The repository's cert key file

Password string

Password for HTTP basic authentication

Repo string

Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.

Username string

Username for HTTP basic authentication

CaFile string

The Repository's CA File

CertFile string

The repository's cert file

KeyFile string

The repository's cert key file

Password string

Password for HTTP basic authentication

Repo string

Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.

Username string

Username for HTTP basic authentication

caFile String

The Repository's CA File

certFile String

The repository's cert file

keyFile String

The repository's cert key file

password String

Password for HTTP basic authentication

repo String

Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.

username String

Username for HTTP basic authentication

caFile string

The Repository's CA File

certFile string

The repository's cert file

keyFile string

The repository's cert key file

password string

Password for HTTP basic authentication

repo string

Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.

username string

Username for HTTP basic authentication

ca_file str

The Repository's CA File

cert_file str

The repository's cert file

key_file str

The repository's cert key file

password str

Password for HTTP basic authentication

repo str

Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.

username str

Username for HTTP basic authentication

caFile String

The Repository's CA File

certFile String

The repository's cert file

keyFile String

The repository's cert key file

password String

Password for HTTP basic authentication

repo String

Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.

username String

Username for HTTP basic authentication

Import

An existing Helm Release resource can be imported using its type token, name and identifier, e.g.

$ pulumi import kubernetes:helm.sh/v3:Release myRelease <namespace>/<releaseName>

Package Details

Repository
Kubernetes pulumi/pulumi-kubernetes
License
Apache-2.0