helm

package
v4.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2024 License: Apache-2.0 Imports: 10 Imported by: 24

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chart

type Chart struct {
	pulumi.ResourceState

	Ready     pulumi.ResourceArrayOutput
	Resources pulumi.Output
}

Chart is a component representing a collection of resources described by an arbitrary Helm Chart. The Chart can be fetched from any source that is accessible to the `helm` command line. Values in the `values.yml` file can be overridden using `ChartOpts.values` (equivalent to `--set` or having multiple `values.yml` files). Objects can be transformed arbitrarily by supplying callbacks to `ChartOpts.transformations`.

`Chart` does not use Tiller. The Chart specified is copied and expanded locally; the semantics are equivalent to running `helm template` and then using Pulumi to manage the resulting YAML manifests. Any values that would be retrieved in-cluster are assigned fake values, and none of Tiller's server-side validity testing is executed.

## Example Usage ### Local Chart Directory

```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

        return nil
    })
}

``` ### Remote Chart

```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

        return nil
    })
}

``` ### Set Chart values

```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        _, err := helm.NewChart(ctx, "nginx-ingress", helm.ChartArgs{
            Chart:   pulumi.String("nginx-ingress"),
            Version: pulumi.String("1.24.4"),
            FetchArgs: helm.FetchArgs{
                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
    })
}

``` ### Deploy Chart into Namespace

```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

        return nil
    })
}

``` ### Chart with Transformations

```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/yaml"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        _, err := helm.NewChart(ctx, "nginx-ingress", helm.ChartArgs{
            Chart:   pulumi.String("nginx-ingress"),
            Version: pulumi.String("1.24.4"),
            FetchArgs: helm.FetchArgs{
                Repo: pulumi.String("https://charts.helm.sh/stable"),
            },
            Transformations: []yaml.Transformation{
                // Make every service private to the cluster, i.e., turn all services into ClusterIP
                // instead of LoadBalancer.
                func(state map[string]interface{}, opts ...pulumi.ResourceOption) {
                    if state["kind"] == "Service" {
                        spec := state["spec"].(map[string]interface{})
                        spec["type"] = "ClusterIP"
                    }
                },

                // Set a resource alias for a previous name.
                func(state map[string]interface{}, opts ...pulumi.ResourceOption) {
                    if state["kind"] == "Deployment" {
                        aliases := pulumi.Aliases([]pulumi.Alias{
                            {
                                Name: pulumi.String("oldName"),
                            },
                        })
                        opts = append(opts, aliases)
                    }
                },

                // Omit a resource from the Chart by transforming the specified resource definition
                // to an empty List.
                func(state map[string]interface{}, opts ...pulumi.ResourceOption) {
                    name := state["metadata"].(map[string]interface{})["name"]
                    if state["kind"] == "Pod" && name == "test" {
                        state["apiVersion"] = "v1"
                        state["kind"] = "List"
                    }
                },
            },
        })
        if err != nil {
            return err
        }

        return nil
    })
}

```

func NewChart

func NewChart(ctx *pulumi.Context,
	name string, args ChartArgs, opts ...pulumi.ResourceOption) (*Chart, error)

NewChart registers a new resource with the given unique name, arguments, and options.

func (*Chart) GetResource

func (c *Chart) GetResource(gvk, name, namespace string) pulumi.AnyOutput

GetResource returns a resource defined by a built-in Kubernetes group/version/kind, name and namespace. For example, GetResource("v1/Pod", "foo", "") would return a Pod called "foo" from the "default" namespace.

type ChartArgs

type ChartArgs struct {
	// The optional Kubernetes API versions used for Capabilities.APIVersions.
	APIVersions pulumi.StringArrayInput
	// By default, Helm resources with the `test`, `test-success`, and `test-failure` hooks are not installed. Set
	// this flag to true to include these resources.
	IncludeTestHookResources pulumi.BoolInput
	// Skip await logic for all resources in this Chart. Resources will be marked ready as soon as they are created.
	// Warning: This option should not be used if you have resources depending on Outputs from the Chart.
	SkipAwait pulumi.BoolInput
	// By default CRDs are also rendered along side templates. Set this to skip CRDs.
	SkipCRDRendering pulumi.BoolInput
	// The optional namespace to install chart resources into.
	Namespace pulumi.StringInput
	// By default, the kubernetes version is derived from your k8s context, this allows it to be overridden.
	// Warning: This option should not be used unless you have a good reason to not use the auto-discovered
	// version as it is much more bug-prone.
	KubeVersion pulumi.StringInput
	// Overrides for chart values.
	Values pulumi.MapInput
	// Transformations is an optional list of transformations to apply to Kubernetes resource definitions
	// before registering with the engine.
	Transformations []yaml.Transformation
	// ResourcePrefix is an optional prefix for the auto-generated resource names. For example, a resource named `bar`
	// created with resource prefix of `"foo"` would produce a resource named `"foo-bar"`.
	ResourcePrefix string

	// (Remote chart) The repository name of the chart to deploy. Example: "stable".
	Repo pulumi.StringInput
	// (Remote chart) The name of the chart to deploy.  If Repo is specified, this chart name will be prefixed
	// by the repo name.
	// Example: Repo: "stable", Chart: "nginx-ingress" -> "stable/nginx-ingress"
	// Example: Chart: "stable/nginx-ingress" -> "stable/nginx-ingress"
	Chart pulumi.StringInput
	// (Remote chart) The version of the chart to deploy. If not provided, the latest version will be deployed.
	Version pulumi.StringInput
	// (Remote chart) Additional options to customize the fetching of the Helm chart.
	FetchArgs FetchArgsInput

	// (Local chart) The path to the chart directory which contains the `Chart.yaml` file.
	// If Path is set, any remote chart args (Repo, Chart, Version, FetchArgs) will be ignored.
	Path pulumi.StringInput
}

ChartArgs specifies arguments for constructing a Chart resource.

func (ChartArgs) ElementType

func (ChartArgs) ElementType() reflect.Type

func (ChartArgs) ToChartArgsOutput

func (i ChartArgs) ToChartArgsOutput() ChartArgsOutput

func (ChartArgs) ToChartArgsOutputWithContext

func (i ChartArgs) ToChartArgsOutputWithContext(ctx context.Context) ChartArgsOutput

type ChartArgsInput

type ChartArgsInput interface {
	pulumi.Input

	ToChartArgsOutput() ChartArgsOutput
	ToChartArgsOutputWithContext(context.Context) ChartArgsOutput
}

type ChartArgsOutput

type ChartArgsOutput struct{ *pulumi.OutputState }

func (ChartArgsOutput) ElementType

func (ChartArgsOutput) ElementType() reflect.Type

func (ChartArgsOutput) ToChartArgsOutput

func (o ChartArgsOutput) ToChartArgsOutput() ChartArgsOutput

func (ChartArgsOutput) ToChartArgsOutputWithContext

func (o ChartArgsOutput) ToChartArgsOutputWithContext(ctx context.Context) ChartArgsOutput

type FetchArgs

type FetchArgs struct {
	// Specific version of a chart. If unset, the latest version is fetched.
	Version pulumi.StringInput
	// Verify certificates of HTTPS-enabled servers using this CA bundle.
	CAFile pulumi.StringInput
	// Identify HTTPS client using this SSL certificate file.
	CertFile pulumi.StringInput
	// Identify HTTPS client using this SSL key file.
	KeyFile pulumi.StringInput
	// Location to write the chart. If Destination and UntarDir are specified, UntarDir is
	// appended to Destination (default ".").
	Destination pulumi.StringInput
	// Keyring containing public keys (default "~/.gnupg/pubring.gpg").
	Keyring pulumi.StringInput
	// Chart repository password.
	Password pulumi.StringInput
	// Chart repository URL for the requested chart.
	Repo pulumi.StringInput
	// Location to expand the chart. (default ".").
	UntarDir pulumi.StringInput
	// Chart repository username.
	Username pulumi.StringInput
	// Location of your Helm config. Overrides $HELM_HOME (default "~/.helm").
	Home pulumi.StringInput
	// Use development versions, too. Equivalent to version '>0.0.0-0'. If Version is set,
	// Devel is ignored.
	Devel pulumi.BoolPtrInput
	// Fetch the provenance file, but don't perform verification.
	Prov pulumi.BoolPtrInput
	// If false, leave the chart as a tarball after downloading.
	Untar pulumi.BoolPtrInput
	// Verify the package against its signature.
	Verify pulumi.BoolPtrInput
}

FetchArgs specifies arguments for fetching the Helm chart.

func (FetchArgs) ElementType

func (FetchArgs) ElementType() reflect.Type

func (FetchArgs) ToFetchArgsOutput

func (i FetchArgs) ToFetchArgsOutput() FetchArgsOutput

func (FetchArgs) ToFetchArgsOutputWithContext

func (i FetchArgs) ToFetchArgsOutputWithContext(ctx context.Context) FetchArgsOutput

type FetchArgsInput

type FetchArgsInput interface {
	pulumi.Input

	ToFetchArgsOutput() FetchArgsOutput
	ToFetchArgsOutputWithContext(context.Context) FetchArgsOutput
}

type FetchArgsOutput

type FetchArgsOutput struct{ *pulumi.OutputState }

func (FetchArgsOutput) ElementType

func (FetchArgsOutput) ElementType() reflect.Type

func (FetchArgsOutput) ToFetchArgsOutput

func (o FetchArgsOutput) ToFetchArgsOutput() FetchArgsOutput

func (FetchArgsOutput) ToFetchArgsOutputWithContext

func (o FetchArgsOutput) ToFetchArgsOutputWithContext(ctx context.Context) FetchArgsOutput

type Release

type Release struct {
	pulumi.CustomResourceState

	// Whether to allow Null values in helm chart configs.
	AllowNullValues pulumi.BoolPtrOutput `pulumi:"allowNullValues"`
	// If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
	Atomic pulumi.BoolPtrOutput `pulumi:"atomic"`
	// Chart name to be installed. A path may be used.
	Chart pulumi.StringOutput `pulumi:"chart"`
	// Allow deletion of new resources created in this upgrade when upgrade fails.
	CleanupOnFail pulumi.BoolPtrOutput `pulumi:"cleanupOnFail"`
	// Create the namespace if it does not exist.
	CreateNamespace pulumi.BoolPtrOutput `pulumi:"createNamespace"`
	// Run helm dependency update before installing the chart.
	DependencyUpdate pulumi.BoolPtrOutput `pulumi:"dependencyUpdate"`
	// Add a custom description
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
	Devel pulumi.BoolPtrOutput `pulumi:"devel"`
	// Prevent CRD hooks from running, but run other hooks.  See helm install --no-crd-hook
	DisableCRDHooks pulumi.BoolPtrOutput `pulumi:"disableCRDHooks"`
	// If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
	DisableOpenapiValidation pulumi.BoolPtrOutput `pulumi:"disableOpenapiValidation"`
	// Prevent hooks from running.
	DisableWebhooks pulumi.BoolPtrOutput `pulumi:"disableWebhooks"`
	// Force resource update through delete/recreate if needed.
	ForceUpdate pulumi.BoolPtrOutput `pulumi:"forceUpdate"`
	// Location of public keys used for verification. Used only if `verify` is true
	Keyring pulumi.StringPtrOutput `pulumi:"keyring"`
	// Run helm lint when planning.
	Lint pulumi.BoolPtrOutput `pulumi:"lint"`
	// The rendered manifests as JSON. Not yet supported.
	Manifest pulumi.MapOutput `pulumi:"manifest"`
	// Limit the maximum number of revisions saved per release. Use 0 for no limit.
	MaxHistory pulumi.IntPtrOutput `pulumi:"maxHistory"`
	// Release name.
	Name pulumi.StringPtrOutput `pulumi:"name"`
	// Namespace to install the release into.
	Namespace pulumi.StringPtrOutput `pulumi:"namespace"`
	// Postrender command to run.
	Postrender pulumi.StringPtrOutput `pulumi:"postrender"`
	// Perform pods restart during upgrade/rollback.
	RecreatePods pulumi.BoolPtrOutput `pulumi:"recreatePods"`
	// If set, render subchart notes along with the parent.
	RenderSubchartNotes pulumi.BoolPtrOutput `pulumi:"renderSubchartNotes"`
	// Re-use the given name, even if that name is already used. This is unsafe in production
	Replace pulumi.BoolPtrOutput `pulumi:"replace"`
	// Specification defining the Helm chart repository to use.
	RepositoryOpts RepositoryOptsPtrOutput `pulumi:"repositoryOpts"`
	// When upgrading, reset the values to the ones built into the chart.
	ResetValues pulumi.BoolPtrOutput `pulumi:"resetValues"`
	// Names of resources created by the release grouped by "kind/version".
	ResourceNames pulumi.StringArrayMapOutput `pulumi:"resourceNames"`
	// When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
	ReuseValues pulumi.BoolPtrOutput `pulumi:"reuseValues"`
	// 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.
	SkipAwait pulumi.BoolPtrOutput `pulumi:"skipAwait"`
	// If set, no CRDs will be installed. By default, CRDs are installed if not already present.
	SkipCrds pulumi.BoolPtrOutput `pulumi:"skipCrds"`
	// Status of the deployed release.
	Status ReleaseStatusOutput `pulumi:"status"`
	// Time in seconds to wait for any individual kubernetes operation.
	Timeout pulumi.IntPtrOutput `pulumi:"timeout"`
	// List of assets (raw yaml files). Content is read and merged with values (with values taking precedence).
	ValueYamlFiles pulumi.AssetOrArchiveArrayOutput `pulumi:"valueYamlFiles"`
	// Custom values set for the release.
	Values pulumi.MapOutput `pulumi:"values"`
	// Verify the package before installing it.
	Verify pulumi.BoolPtrOutput `pulumi:"verify"`
	// Specify the exact chart version to install. If this is not specified, the latest version is installed.
	Version pulumi.StringPtrOutput `pulumi:"version"`
	// Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
	WaitForJobs pulumi.BoolPtrOutput `pulumi:"waitForJobs"`
}

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.

You may also want to consider the `Chart` resource as an alternative method for managing helm charts. For more information about the trade-offs between these options see: [Choosing the right Helm resource for your use case](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/choosing-the-right-helm-resource-for-your-use-case)

## Example Usage ### Local Chart Directory ```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/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
	})
}

``` ### Remote Chart ```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/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
	})
}

``` ### Set Chart Values ```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/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
	})
}

``` ### Deploy Chart into Namespace ```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/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
	})
}

```

### Depend on a Chart resource ```go package main

import (

corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1"
"github.com/pulumi/pulumi-kubernetes/sdk/v4/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
	})
}

``` ### Specify Helm Chart Values in File and Code ```go package main

import (

"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
"github.com/pulumi/pulumi-kubernetes/sdk/v4/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.AssetOrArchiveArray{
				pulumi.NewFileAsset("./metrics.yml"),
			},
			Values: 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 ``` ### Query Kubernetes Resource Installed By Helm Chart ```go package main

import (

"fmt"

corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1"
"github.com/pulumi/pulumi-kubernetes/sdk/v4/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
	})
}

```

## Import

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

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

func GetRelease

func GetRelease(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReleaseState, opts ...pulumi.ResourceOption) (*Release, error)

GetRelease gets an existing Release resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewRelease

func NewRelease(ctx *pulumi.Context,
	name string, args *ReleaseArgs, opts ...pulumi.ResourceOption) (*Release, error)

NewRelease registers a new resource with the given unique name, arguments, and options.

func (*Release) ElementType

func (*Release) ElementType() reflect.Type

func (*Release) ToReleaseOutput

func (i *Release) ToReleaseOutput() ReleaseOutput

func (*Release) ToReleaseOutputWithContext

func (i *Release) ToReleaseOutputWithContext(ctx context.Context) ReleaseOutput

type ReleaseArgs

type ReleaseArgs struct {
	// Whether to allow Null values in helm chart configs.
	AllowNullValues pulumi.BoolPtrInput
	// If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
	Atomic pulumi.BoolPtrInput
	// Chart name to be installed. A path may be used.
	Chart pulumi.StringInput
	// Allow deletion of new resources created in this upgrade when upgrade fails.
	CleanupOnFail pulumi.BoolPtrInput
	Compat        pulumi.StringPtrInput
	// Create the namespace if it does not exist.
	CreateNamespace pulumi.BoolPtrInput
	// Run helm dependency update before installing the chart.
	DependencyUpdate pulumi.BoolPtrInput
	// Add a custom description
	Description pulumi.StringPtrInput
	// Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
	Devel pulumi.BoolPtrInput
	// Prevent CRD hooks from running, but run other hooks.  See helm install --no-crd-hook
	DisableCRDHooks pulumi.BoolPtrInput
	// If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
	DisableOpenapiValidation pulumi.BoolPtrInput
	// Prevent hooks from running.
	DisableWebhooks pulumi.BoolPtrInput
	// Force resource update through delete/recreate if needed.
	ForceUpdate pulumi.BoolPtrInput
	// Location of public keys used for verification. Used only if `verify` is true
	Keyring pulumi.StringPtrInput
	// Run helm lint when planning.
	Lint pulumi.BoolPtrInput
	// The rendered manifests as JSON. Not yet supported.
	Manifest pulumi.MapInput
	// Limit the maximum number of revisions saved per release. Use 0 for no limit.
	MaxHistory pulumi.IntPtrInput
	// Release name.
	Name pulumi.StringPtrInput
	// Namespace to install the release into.
	Namespace pulumi.StringPtrInput
	// Postrender command to run.
	Postrender pulumi.StringPtrInput
	// Perform pods restart during upgrade/rollback.
	RecreatePods pulumi.BoolPtrInput
	// If set, render subchart notes along with the parent.
	RenderSubchartNotes pulumi.BoolPtrInput
	// Re-use the given name, even if that name is already used. This is unsafe in production
	Replace pulumi.BoolPtrInput
	// Specification defining the Helm chart repository to use.
	RepositoryOpts RepositoryOptsPtrInput
	// When upgrading, reset the values to the ones built into the chart.
	ResetValues pulumi.BoolPtrInput
	// Names of resources created by the release grouped by "kind/version".
	ResourceNames pulumi.StringArrayMapInput
	// When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
	ReuseValues pulumi.BoolPtrInput
	// 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.
	SkipAwait pulumi.BoolPtrInput
	// If set, no CRDs will be installed. By default, CRDs are installed if not already present.
	SkipCrds pulumi.BoolPtrInput
	// Time in seconds to wait for any individual kubernetes operation.
	Timeout pulumi.IntPtrInput
	// List of assets (raw yaml files). Content is read and merged with values.
	ValueYamlFiles pulumi.AssetOrArchiveArrayInput
	// Custom values set for the release.
	Values pulumi.MapInput
	// Verify the package before installing it.
	Verify pulumi.BoolPtrInput
	// Specify the exact chart version to install. If this is not specified, the latest version is installed.
	Version pulumi.StringPtrInput
	// Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
	WaitForJobs pulumi.BoolPtrInput
}

The set of arguments for constructing a Release resource.

func (ReleaseArgs) ElementType

func (ReleaseArgs) ElementType() reflect.Type

type ReleaseArray

type ReleaseArray []ReleaseInput

func (ReleaseArray) ElementType

func (ReleaseArray) ElementType() reflect.Type

func (ReleaseArray) ToReleaseArrayOutput

func (i ReleaseArray) ToReleaseArrayOutput() ReleaseArrayOutput

func (ReleaseArray) ToReleaseArrayOutputWithContext

func (i ReleaseArray) ToReleaseArrayOutputWithContext(ctx context.Context) ReleaseArrayOutput

type ReleaseArrayInput

type ReleaseArrayInput interface {
	pulumi.Input

	ToReleaseArrayOutput() ReleaseArrayOutput
	ToReleaseArrayOutputWithContext(context.Context) ReleaseArrayOutput
}

ReleaseArrayInput is an input type that accepts ReleaseArray and ReleaseArrayOutput values. You can construct a concrete instance of `ReleaseArrayInput` via:

ReleaseArray{ ReleaseArgs{...} }

type ReleaseArrayOutput

type ReleaseArrayOutput struct{ *pulumi.OutputState }

func (ReleaseArrayOutput) ElementType

func (ReleaseArrayOutput) ElementType() reflect.Type

func (ReleaseArrayOutput) Index

func (ReleaseArrayOutput) ToReleaseArrayOutput

func (o ReleaseArrayOutput) ToReleaseArrayOutput() ReleaseArrayOutput

func (ReleaseArrayOutput) ToReleaseArrayOutputWithContext

func (o ReleaseArrayOutput) ToReleaseArrayOutputWithContext(ctx context.Context) ReleaseArrayOutput

type ReleaseInput

type ReleaseInput interface {
	pulumi.Input

	ToReleaseOutput() ReleaseOutput
	ToReleaseOutputWithContext(ctx context.Context) ReleaseOutput
}

type ReleaseMap

type ReleaseMap map[string]ReleaseInput

func (ReleaseMap) ElementType

func (ReleaseMap) ElementType() reflect.Type

func (ReleaseMap) ToReleaseMapOutput

func (i ReleaseMap) ToReleaseMapOutput() ReleaseMapOutput

func (ReleaseMap) ToReleaseMapOutputWithContext

func (i ReleaseMap) ToReleaseMapOutputWithContext(ctx context.Context) ReleaseMapOutput

type ReleaseMapInput

type ReleaseMapInput interface {
	pulumi.Input

	ToReleaseMapOutput() ReleaseMapOutput
	ToReleaseMapOutputWithContext(context.Context) ReleaseMapOutput
}

ReleaseMapInput is an input type that accepts ReleaseMap and ReleaseMapOutput values. You can construct a concrete instance of `ReleaseMapInput` via:

ReleaseMap{ "key": ReleaseArgs{...} }

type ReleaseMapOutput

type ReleaseMapOutput struct{ *pulumi.OutputState }

func (ReleaseMapOutput) ElementType

func (ReleaseMapOutput) ElementType() reflect.Type

func (ReleaseMapOutput) MapIndex

func (ReleaseMapOutput) ToReleaseMapOutput

func (o ReleaseMapOutput) ToReleaseMapOutput() ReleaseMapOutput

func (ReleaseMapOutput) ToReleaseMapOutputWithContext

func (o ReleaseMapOutput) ToReleaseMapOutputWithContext(ctx context.Context) ReleaseMapOutput

type ReleaseOutput

type ReleaseOutput struct{ *pulumi.OutputState }

func (ReleaseOutput) AllowNullValues

func (o ReleaseOutput) AllowNullValues() pulumi.BoolPtrOutput

Whether to allow Null values in helm chart configs.

func (ReleaseOutput) Atomic

func (o ReleaseOutput) Atomic() pulumi.BoolPtrOutput

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

func (ReleaseOutput) Chart

func (o ReleaseOutput) Chart() pulumi.StringOutput

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

func (ReleaseOutput) CleanupOnFail

func (o ReleaseOutput) CleanupOnFail() pulumi.BoolPtrOutput

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

func (ReleaseOutput) CreateNamespace

func (o ReleaseOutput) CreateNamespace() pulumi.BoolPtrOutput

Create the namespace if it does not exist.

func (ReleaseOutput) DependencyUpdate

func (o ReleaseOutput) DependencyUpdate() pulumi.BoolPtrOutput

Run helm dependency update before installing the chart.

func (ReleaseOutput) Description

func (o ReleaseOutput) Description() pulumi.StringPtrOutput

Add a custom description

func (ReleaseOutput) Devel

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

func (ReleaseOutput) DisableCRDHooks

func (o ReleaseOutput) DisableCRDHooks() pulumi.BoolPtrOutput

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

func (ReleaseOutput) DisableOpenapiValidation

func (o ReleaseOutput) DisableOpenapiValidation() pulumi.BoolPtrOutput

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

func (ReleaseOutput) DisableWebhooks

func (o ReleaseOutput) DisableWebhooks() pulumi.BoolPtrOutput

Prevent hooks from running.

func (ReleaseOutput) ElementType

func (ReleaseOutput) ElementType() reflect.Type

func (ReleaseOutput) ForceUpdate

func (o ReleaseOutput) ForceUpdate() pulumi.BoolPtrOutput

Force resource update through delete/recreate if needed.

func (ReleaseOutput) Keyring

func (o ReleaseOutput) Keyring() pulumi.StringPtrOutput

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

func (ReleaseOutput) Lint

Run helm lint when planning.

func (ReleaseOutput) Manifest

func (o ReleaseOutput) Manifest() pulumi.MapOutput

The rendered manifests as JSON. Not yet supported.

func (ReleaseOutput) MaxHistory

func (o ReleaseOutput) MaxHistory() pulumi.IntPtrOutput

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

func (ReleaseOutput) Name

Release name.

func (ReleaseOutput) Namespace

func (o ReleaseOutput) Namespace() pulumi.StringPtrOutput

Namespace to install the release into.

func (ReleaseOutput) Postrender

func (o ReleaseOutput) Postrender() pulumi.StringPtrOutput

Postrender command to run.

func (ReleaseOutput) RecreatePods

func (o ReleaseOutput) RecreatePods() pulumi.BoolPtrOutput

Perform pods restart during upgrade/rollback.

func (ReleaseOutput) RenderSubchartNotes

func (o ReleaseOutput) RenderSubchartNotes() pulumi.BoolPtrOutput

If set, render subchart notes along with the parent.

func (ReleaseOutput) Replace

func (o ReleaseOutput) Replace() pulumi.BoolPtrOutput

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

func (ReleaseOutput) RepositoryOpts

func (o ReleaseOutput) RepositoryOpts() RepositoryOptsPtrOutput

Specification defining the Helm chart repository to use.

func (ReleaseOutput) ResetValues

func (o ReleaseOutput) ResetValues() pulumi.BoolPtrOutput

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

func (ReleaseOutput) ResourceNames

func (o ReleaseOutput) ResourceNames() pulumi.StringArrayMapOutput

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

func (ReleaseOutput) ReuseValues

func (o ReleaseOutput) ReuseValues() pulumi.BoolPtrOutput

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

func (ReleaseOutput) SkipAwait

func (o ReleaseOutput) SkipAwait() pulumi.BoolPtrOutput

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.

func (ReleaseOutput) SkipCrds

func (o ReleaseOutput) SkipCrds() pulumi.BoolPtrOutput

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

func (ReleaseOutput) Status

Status of the deployed release.

func (ReleaseOutput) Timeout

func (o ReleaseOutput) Timeout() pulumi.IntPtrOutput

Time in seconds to wait for any individual kubernetes operation.

func (ReleaseOutput) ToReleaseOutput

func (o ReleaseOutput) ToReleaseOutput() ReleaseOutput

func (ReleaseOutput) ToReleaseOutputWithContext

func (o ReleaseOutput) ToReleaseOutputWithContext(ctx context.Context) ReleaseOutput

func (ReleaseOutput) ValueYamlFiles

func (o ReleaseOutput) ValueYamlFiles() pulumi.AssetOrArchiveArrayOutput

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

func (ReleaseOutput) Values

func (o ReleaseOutput) Values() pulumi.MapOutput

Custom values set for the release.

func (ReleaseOutput) Verify

func (o ReleaseOutput) Verify() pulumi.BoolPtrOutput

Verify the package before installing it.

func (ReleaseOutput) Version

func (o ReleaseOutput) Version() pulumi.StringPtrOutput

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

func (ReleaseOutput) WaitForJobs

func (o ReleaseOutput) WaitForJobs() pulumi.BoolPtrOutput

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

type ReleaseState

type ReleaseState struct {
}

func (ReleaseState) ElementType

func (ReleaseState) ElementType() reflect.Type

type ReleaseStatus

type ReleaseStatus struct {
	// The version number of the application being deployed.
	AppVersion *string `pulumi:"appVersion"`
	// The name of the chart.
	Chart *string `pulumi:"chart"`
	// Name is the name of the release.
	Name *string `pulumi:"name"`
	// Namespace is the kubernetes namespace of the release.
	Namespace *string `pulumi:"namespace"`
	// Version is an int32 which represents the version of the release.
	Revision *int `pulumi:"revision"`
	// Status of the release.
	Status string `pulumi:"status"`
	// A SemVer 2 conformant version string of the chart.
	Version *string `pulumi:"version"`
}

type ReleaseStatusArgs

type ReleaseStatusArgs struct {
	// The version number of the application being deployed.
	AppVersion pulumi.StringPtrInput `pulumi:"appVersion"`
	// The name of the chart.
	Chart pulumi.StringPtrInput `pulumi:"chart"`
	// Name is the name of the release.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// Namespace is the kubernetes namespace of the release.
	Namespace pulumi.StringPtrInput `pulumi:"namespace"`
	// Version is an int32 which represents the version of the release.
	Revision pulumi.IntPtrInput `pulumi:"revision"`
	// Status of the release.
	Status pulumi.StringInput `pulumi:"status"`
	// A SemVer 2 conformant version string of the chart.
	Version pulumi.StringPtrInput `pulumi:"version"`
}

func (ReleaseStatusArgs) ElementType

func (ReleaseStatusArgs) ElementType() reflect.Type

func (ReleaseStatusArgs) ToReleaseStatusOutput

func (i ReleaseStatusArgs) ToReleaseStatusOutput() ReleaseStatusOutput

func (ReleaseStatusArgs) ToReleaseStatusOutputWithContext

func (i ReleaseStatusArgs) ToReleaseStatusOutputWithContext(ctx context.Context) ReleaseStatusOutput

type ReleaseStatusInput

type ReleaseStatusInput interface {
	pulumi.Input

	ToReleaseStatusOutput() ReleaseStatusOutput
	ToReleaseStatusOutputWithContext(context.Context) ReleaseStatusOutput
}

ReleaseStatusInput is an input type that accepts ReleaseStatusArgs and ReleaseStatusOutput values. You can construct a concrete instance of `ReleaseStatusInput` via:

ReleaseStatusArgs{...}

type ReleaseStatusOutput

type ReleaseStatusOutput struct{ *pulumi.OutputState }

func (ReleaseStatusOutput) AppVersion

The version number of the application being deployed.

func (ReleaseStatusOutput) Chart

The name of the chart.

func (ReleaseStatusOutput) ElementType

func (ReleaseStatusOutput) ElementType() reflect.Type

func (ReleaseStatusOutput) Name

Name is the name of the release.

func (ReleaseStatusOutput) Namespace

Namespace is the kubernetes namespace of the release.

func (ReleaseStatusOutput) Revision

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

func (ReleaseStatusOutput) Status

Status of the release.

func (ReleaseStatusOutput) ToReleaseStatusOutput

func (o ReleaseStatusOutput) ToReleaseStatusOutput() ReleaseStatusOutput

func (ReleaseStatusOutput) ToReleaseStatusOutputWithContext

func (o ReleaseStatusOutput) ToReleaseStatusOutputWithContext(ctx context.Context) ReleaseStatusOutput

func (ReleaseStatusOutput) Version

A SemVer 2 conformant version string of the chart.

type RepositoryOpts

type RepositoryOpts struct {
	// The Repository's CA File
	CaFile *string `pulumi:"caFile"`
	// The repository's cert file
	CertFile *string `pulumi:"certFile"`
	// The repository's cert key file
	KeyFile *string `pulumi:"keyFile"`
	// Password for HTTP basic authentication
	Password *string `pulumi:"password"`
	// Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.
	Repo *string `pulumi:"repo"`
	// Username for HTTP basic authentication
	Username *string `pulumi:"username"`
}

Specification defining the Helm chart repository to use.

type RepositoryOptsArgs

type RepositoryOptsArgs struct {
	// The Repository's CA File
	CaFile pulumi.StringPtrInput `pulumi:"caFile"`
	// The repository's cert file
	CertFile pulumi.StringPtrInput `pulumi:"certFile"`
	// The repository's cert key file
	KeyFile pulumi.StringPtrInput `pulumi:"keyFile"`
	// Password for HTTP basic authentication
	Password pulumi.StringPtrInput `pulumi:"password"`
	// Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.
	Repo pulumi.StringPtrInput `pulumi:"repo"`
	// Username for HTTP basic authentication
	Username pulumi.StringPtrInput `pulumi:"username"`
}

Specification defining the Helm chart repository to use.

func (RepositoryOptsArgs) ElementType

func (RepositoryOptsArgs) ElementType() reflect.Type

func (RepositoryOptsArgs) ToRepositoryOptsOutput

func (i RepositoryOptsArgs) ToRepositoryOptsOutput() RepositoryOptsOutput

func (RepositoryOptsArgs) ToRepositoryOptsOutputWithContext

func (i RepositoryOptsArgs) ToRepositoryOptsOutputWithContext(ctx context.Context) RepositoryOptsOutput

func (RepositoryOptsArgs) ToRepositoryOptsPtrOutput

func (i RepositoryOptsArgs) ToRepositoryOptsPtrOutput() RepositoryOptsPtrOutput

func (RepositoryOptsArgs) ToRepositoryOptsPtrOutputWithContext

func (i RepositoryOptsArgs) ToRepositoryOptsPtrOutputWithContext(ctx context.Context) RepositoryOptsPtrOutput

type RepositoryOptsInput

type RepositoryOptsInput interface {
	pulumi.Input

	ToRepositoryOptsOutput() RepositoryOptsOutput
	ToRepositoryOptsOutputWithContext(context.Context) RepositoryOptsOutput
}

RepositoryOptsInput is an input type that accepts RepositoryOptsArgs and RepositoryOptsOutput values. You can construct a concrete instance of `RepositoryOptsInput` via:

RepositoryOptsArgs{...}

type RepositoryOptsOutput

type RepositoryOptsOutput struct{ *pulumi.OutputState }

Specification defining the Helm chart repository to use.

func (RepositoryOptsOutput) CaFile

The Repository's CA File

func (RepositoryOptsOutput) CertFile

The repository's cert file

func (RepositoryOptsOutput) ElementType

func (RepositoryOptsOutput) ElementType() reflect.Type

func (RepositoryOptsOutput) KeyFile

The repository's cert key file

func (RepositoryOptsOutput) Password

Password for HTTP basic authentication

func (RepositoryOptsOutput) Repo

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

func (RepositoryOptsOutput) ToRepositoryOptsOutput

func (o RepositoryOptsOutput) ToRepositoryOptsOutput() RepositoryOptsOutput

func (RepositoryOptsOutput) ToRepositoryOptsOutputWithContext

func (o RepositoryOptsOutput) ToRepositoryOptsOutputWithContext(ctx context.Context) RepositoryOptsOutput

func (RepositoryOptsOutput) ToRepositoryOptsPtrOutput

func (o RepositoryOptsOutput) ToRepositoryOptsPtrOutput() RepositoryOptsPtrOutput

func (RepositoryOptsOutput) ToRepositoryOptsPtrOutputWithContext

func (o RepositoryOptsOutput) ToRepositoryOptsPtrOutputWithContext(ctx context.Context) RepositoryOptsPtrOutput

func (RepositoryOptsOutput) Username

Username for HTTP basic authentication

type RepositoryOptsPtrInput

type RepositoryOptsPtrInput interface {
	pulumi.Input

	ToRepositoryOptsPtrOutput() RepositoryOptsPtrOutput
	ToRepositoryOptsPtrOutputWithContext(context.Context) RepositoryOptsPtrOutput
}

RepositoryOptsPtrInput is an input type that accepts RepositoryOptsArgs, RepositoryOptsPtr and RepositoryOptsPtrOutput values. You can construct a concrete instance of `RepositoryOptsPtrInput` via:

        RepositoryOptsArgs{...}

or:

        nil

type RepositoryOptsPtrOutput

type RepositoryOptsPtrOutput struct{ *pulumi.OutputState }

func (RepositoryOptsPtrOutput) CaFile

The Repository's CA File

func (RepositoryOptsPtrOutput) CertFile

The repository's cert file

func (RepositoryOptsPtrOutput) Elem

func (RepositoryOptsPtrOutput) ElementType

func (RepositoryOptsPtrOutput) ElementType() reflect.Type

func (RepositoryOptsPtrOutput) KeyFile

The repository's cert key file

func (RepositoryOptsPtrOutput) Password

Password for HTTP basic authentication

func (RepositoryOptsPtrOutput) Repo

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

func (RepositoryOptsPtrOutput) ToRepositoryOptsPtrOutput

func (o RepositoryOptsPtrOutput) ToRepositoryOptsPtrOutput() RepositoryOptsPtrOutput

func (RepositoryOptsPtrOutput) ToRepositoryOptsPtrOutputWithContext

func (o RepositoryOptsPtrOutput) ToRepositoryOptsPtrOutputWithContext(ctx context.Context) RepositoryOptsPtrOutput

func (RepositoryOptsPtrOutput) Username

Username for HTTP basic authentication

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL