github.com/pulumi/pulumi-kubernetes/sdk/v3@v3.30.2/go/kubernetes/helm/v3/release.go (about)

     1  // Code generated by pulumigen DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package helm
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // A `Release` is an instance of a chart running in a Kubernetes cluster. A `Chart` is a Helm package. It contains all the
    15  // resource definitions necessary to run an application, tool, or service inside a Kubernetes cluster.
    16  //
    17  // This resource models a Helm Release as if it were created by the Helm CLI. The underlying implementation embeds Helm as
    18  // a library to perform the orchestration of the resources. As a result, the full spectrum of Helm features are supported
    19  // natively.
    20  //
    21  // ## Example Usage
    22  // ### Local Chart Directory
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
    36  //				Chart: pulumi.String("./nginx-ingress"),
    37  //			})
    38  //			if err != nil {
    39  //				return err
    40  //			}
    41  //
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // ### Remote Chart
    48  // ```go
    49  // package main
    50  //
    51  // import (
    52  //
    53  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
    54  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    55  //
    56  // )
    57  //
    58  //	func main() {
    59  //		pulumi.Run(func(ctx *pulumi.Context) error {
    60  //			_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
    61  //				Chart:   pulumi.String("nginx-ingress"),
    62  //				Version: pulumi.String("1.24.4"),
    63  //				RepositoryOpts: helm.RepositoryOptsArgs{
    64  //					Repo: pulumi.String("https://charts.helm.sh/stable"),
    65  //				},
    66  //			})
    67  //			if err != nil {
    68  //				return err
    69  //			}
    70  //
    71  //			return nil
    72  //		})
    73  //	}
    74  //
    75  // ```
    76  // ### Set Chart Values
    77  // ```go
    78  // package main
    79  //
    80  // import (
    81  //
    82  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
    83  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    84  //
    85  // )
    86  //
    87  //	func main() {
    88  //		pulumi.Run(func(ctx *pulumi.Context) error {
    89  //			_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
    90  //				Chart:   pulumi.String("nginx-ingress"),
    91  //				Version: pulumi.String("1.24.4"),
    92  //				RepositoryOpts: helm.RepositoryOptsArgs{
    93  //					Repo: pulumi.String("https://charts.helm.sh/stable"),
    94  //				},
    95  //				Values: pulumi.Map{
    96  //					"controller": pulumi.Map{
    97  //						"metrics": pulumi.Map{
    98  //							"enabled": pulumi.Bool(true),
    99  //						},
   100  //					},
   101  //				},
   102  //			})
   103  //			if err != nil {
   104  //				return err
   105  //			}
   106  //
   107  //			return nil
   108  //		})
   109  //	}
   110  //
   111  // ```
   112  // ### Deploy Chart into Namespace
   113  // ```go
   114  // package main
   115  //
   116  // import (
   117  //
   118  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
   119  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   120  //
   121  // )
   122  //
   123  //	func main() {
   124  //		pulumi.Run(func(ctx *pulumi.Context) error {
   125  //			_, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
   126  //				Chart:     pulumi.String("nginx-ingress"),
   127  //				Version:   pulumi.String("1.24.4"),
   128  //				Namespace: pulumi.String("test-namespace"),
   129  //				RepositoryOpts: helm.RepositoryOptsArgs{
   130  //					Repo: pulumi.String("https://charts.helm.sh/stable"),
   131  //				},
   132  //			})
   133  //			if err != nil {
   134  //				return err
   135  //			}
   136  //
   137  //			return nil
   138  //		})
   139  //	}
   140  //
   141  // ```
   142  //
   143  // ### Depend on a Chart resource
   144  // ```go
   145  // package main
   146  //
   147  // import (
   148  //
   149  //	corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1"
   150  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
   151  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   152  //
   153  // )
   154  //
   155  //	func main() {
   156  //		pulumi.Run(func(ctx *pulumi.Context) error {
   157  //			release, err := helm.NewRelease(ctx, "nginx-ingress", helm.ReleaseArgs{
   158  //				Chart:     pulumi.String("nginx-ingress"),
   159  //				Version:   pulumi.String("1.24.4"),
   160  //				Namespace: pulumi.String("test-namespace"),
   161  //				RepositoryOpts: helm.RepositoryOptsArgs{
   162  //					Repo: pulumi.String("https://charts.helm.sh/stable"),
   163  //				},
   164  //				SkipAwait: pulumi.Bool(false),
   165  //			})
   166  //			if err != nil {
   167  //				return err
   168  //			}
   169  //
   170  //			// Create a ConfigMap depending on the Chart. The ConfigMap will not be created until after all of the Chart
   171  //			// resources are ready. Notice SkipAwait is set to false above. This is the default and will cause Helm
   172  //			// to await the underlying resources to be available. Setting it to true will make the ConfigMap available right away.
   173  //			_, err = corev1.NewConfigMap(ctx, "cm", &corev1.ConfigMapArgs{
   174  //				Data: pulumi.StringMap{
   175  //					"foo": pulumi.String("bar"),
   176  //				},
   177  //			}, pulumi.DependsOnInputs(release))
   178  //			if err != nil {
   179  //				return err
   180  //			}
   181  //
   182  //			return nil
   183  //		})
   184  //	}
   185  //
   186  // ```
   187  // ### Specify Helm Chart Values in File and Code
   188  // ```go
   189  // package main
   190  //
   191  // import (
   192  //
   193  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
   194  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/yaml"
   195  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   196  //
   197  // )
   198  //
   199  //	func main() {
   200  //		pulumi.Run(func(ctx *pulumi.Context) error {
   201  //			_, err := helm.NewRelease(ctx, "redis", helm.ReleaseArgs{
   202  //				Chart:   pulumi.String("redis"),
   203  //				RepositoryOpts: helm.RepositoryOptsArgs{
   204  //					Repo: pulumi.String("https://charts.helm.sh/stable"),
   205  //				},
   206  //				ValueYamlFiles: pulumi.NewFileAsset("./metrics.yml"),
   207  //				Value: pulumi.Map{
   208  //					"cluster": pulumi.Map{
   209  //						"enabled": pulumi.Bool(true),
   210  //					},
   211  //					"rbac": pulumi.Map{
   212  //						"create": pulumi.Bool(true),
   213  //					},
   214  //				},
   215  //			})
   216  //			if err != nil {
   217  //				return err
   218  //			}
   219  //
   220  //			return nil
   221  //		})
   222  //	}
   223  //
   224  // // -- Contents of metrics.yml --
   225  // // metrics:
   226  // //     enabled: true
   227  // ```
   228  // ### Query Kubernetes Resource Installed By Helm Chart
   229  // ```go
   230  // package main
   231  //
   232  // import (
   233  //
   234  //	"fmt"
   235  //
   236  //	corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1"
   237  //	"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/helm/v3"
   238  //	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
   239  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   240  //
   241  // )
   242  //
   243  //	func main() {
   244  //		pulumi.Run(func(ctx *pulumi.Context) error {
   245  //			rel, err := helm.NewRelease(ctx, "redis", &helm.ReleaseArgs{
   246  //				Chart: pulumi.String("redis"),
   247  //				RepositoryOpts: helm.RepositoryOptsArgs{
   248  //					Repo: pulumi.String("https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami"),
   249  //				},
   250  //				Values: pulumi.Map{
   251  //					"cluster": pulumi.Map{
   252  //						"enabled": pulumi.Bool(true),
   253  //					},
   254  //					"rbac": pulumi.BoolMap{
   255  //						"create": pulumi.Bool(true),
   256  //					},
   257  //				},
   258  //			})
   259  //			if err != nil {
   260  //				return err
   261  //			}
   262  //
   263  //			// srv will only resolve after the redis chart is installed.
   264  //			srv := pulumi.All(rel.Status.Namespace(), rel.Status.Name()).
   265  //				ApplyT(func(r interface{}) (interface{}, error) {
   266  //					arr := r.([]interface{})
   267  //					namespace := arr[0].(*string)
   268  //					name := arr[1].(*string)
   269  //					svc, err := corev1.GetService(ctx,
   270  //						"redis-master-svc",
   271  //						pulumi.ID(fmt.Sprintf("%s/%s-master", *namespace, *name)),
   272  //						nil,
   273  //					)
   274  //					if err != nil {
   275  //						return "", nil
   276  //					}
   277  //					return svc.Spec.ClusterIP(), nil
   278  //				})
   279  //			ctx.Export("redisMasterClusterIP", srv)
   280  //
   281  //			return nil
   282  //		})
   283  //	}
   284  //
   285  // ```
   286  //
   287  // ## Import
   288  //
   289  // An existing Helm Release resource can be imported using its `type token`, `name` and identifier, e.g.
   290  //
   291  // ```sh
   292  // $ pulumi import kubernetes:helm.sh/v3:Release myRelease <namespace>/<releaseName>
   293  // ```
   294  type Release struct {
   295  	pulumi.CustomResourceState
   296  
   297  	// Whether to allow Null values in helm chart configs.
   298  	AllowNullValues pulumi.BoolPtrOutput `pulumi:"allowNullValues"`
   299  	// If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
   300  	Atomic pulumi.BoolPtrOutput `pulumi:"atomic"`
   301  	// Chart name to be installed. A path may be used.
   302  	Chart pulumi.StringOutput `pulumi:"chart"`
   303  	// Allow deletion of new resources created in this upgrade when upgrade fails.
   304  	CleanupOnFail pulumi.BoolPtrOutput `pulumi:"cleanupOnFail"`
   305  	// Create the namespace if it does not exist.
   306  	CreateNamespace pulumi.BoolPtrOutput `pulumi:"createNamespace"`
   307  	// Run helm dependency update before installing the chart.
   308  	DependencyUpdate pulumi.BoolPtrOutput `pulumi:"dependencyUpdate"`
   309  	// Add a custom description
   310  	Description pulumi.StringPtrOutput `pulumi:"description"`
   311  	// Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
   312  	Devel pulumi.BoolPtrOutput `pulumi:"devel"`
   313  	// Prevent CRD hooks from running, but run other hooks.  See helm install --no-crd-hook
   314  	DisableCRDHooks pulumi.BoolPtrOutput `pulumi:"disableCRDHooks"`
   315  	// If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
   316  	DisableOpenapiValidation pulumi.BoolPtrOutput `pulumi:"disableOpenapiValidation"`
   317  	// Prevent hooks from running.
   318  	DisableWebhooks pulumi.BoolPtrOutput `pulumi:"disableWebhooks"`
   319  	// Force resource update through delete/recreate if needed.
   320  	ForceUpdate pulumi.BoolPtrOutput `pulumi:"forceUpdate"`
   321  	// Location of public keys used for verification. Used only if `verify` is true
   322  	Keyring pulumi.StringPtrOutput `pulumi:"keyring"`
   323  	// Run helm lint when planning.
   324  	Lint pulumi.BoolPtrOutput `pulumi:"lint"`
   325  	// The rendered manifests as JSON. Not yet supported.
   326  	Manifest pulumi.MapOutput `pulumi:"manifest"`
   327  	// Limit the maximum number of revisions saved per release. Use 0 for no limit.
   328  	MaxHistory pulumi.IntPtrOutput `pulumi:"maxHistory"`
   329  	// Release name.
   330  	Name pulumi.StringPtrOutput `pulumi:"name"`
   331  	// Namespace to install the release into.
   332  	Namespace pulumi.StringPtrOutput `pulumi:"namespace"`
   333  	// Postrender command to run.
   334  	Postrender pulumi.StringPtrOutput `pulumi:"postrender"`
   335  	// Perform pods restart during upgrade/rollback.
   336  	RecreatePods pulumi.BoolPtrOutput `pulumi:"recreatePods"`
   337  	// If set, render subchart notes along with the parent.
   338  	RenderSubchartNotes pulumi.BoolPtrOutput `pulumi:"renderSubchartNotes"`
   339  	// Re-use the given name, even if that name is already used. This is unsafe in production
   340  	Replace pulumi.BoolPtrOutput `pulumi:"replace"`
   341  	// Specification defining the Helm chart repository to use.
   342  	RepositoryOpts RepositoryOptsPtrOutput `pulumi:"repositoryOpts"`
   343  	// When upgrading, reset the values to the ones built into the chart.
   344  	ResetValues pulumi.BoolPtrOutput `pulumi:"resetValues"`
   345  	// Names of resources created by the release grouped by "kind/version".
   346  	ResourceNames pulumi.StringArrayMapOutput `pulumi:"resourceNames"`
   347  	// When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
   348  	ReuseValues pulumi.BoolPtrOutput `pulumi:"reuseValues"`
   349  	// 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.
   350  	SkipAwait pulumi.BoolPtrOutput `pulumi:"skipAwait"`
   351  	// If set, no CRDs will be installed. By default, CRDs are installed if not already present.
   352  	SkipCrds pulumi.BoolPtrOutput `pulumi:"skipCrds"`
   353  	// Status of the deployed release.
   354  	Status ReleaseStatusOutput `pulumi:"status"`
   355  	// Time in seconds to wait for any individual kubernetes operation.
   356  	Timeout pulumi.IntPtrOutput `pulumi:"timeout"`
   357  	// List of assets (raw yaml files). Content is read and merged with values (with values taking precedence).
   358  	ValueYamlFiles pulumi.AssetOrArchiveArrayOutput `pulumi:"valueYamlFiles"`
   359  	// Custom values set for the release.
   360  	Values pulumi.MapOutput `pulumi:"values"`
   361  	// Verify the package before installing it.
   362  	Verify pulumi.BoolPtrOutput `pulumi:"verify"`
   363  	// Specify the exact chart version to install. If this is not specified, the latest version is installed.
   364  	Version pulumi.StringPtrOutput `pulumi:"version"`
   365  	// Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
   366  	WaitForJobs pulumi.BoolPtrOutput `pulumi:"waitForJobs"`
   367  }
   368  
   369  // NewRelease registers a new resource with the given unique name, arguments, and options.
   370  func NewRelease(ctx *pulumi.Context,
   371  	name string, args *ReleaseArgs, opts ...pulumi.ResourceOption) (*Release, error) {
   372  	if args == nil {
   373  		return nil, errors.New("missing one or more required arguments")
   374  	}
   375  
   376  	if args.Chart == nil {
   377  		return nil, errors.New("invalid value for required argument 'Chart'")
   378  	}
   379  	args.Compat = pulumi.StringPtr("true")
   380  	var resource Release
   381  	err := ctx.RegisterResource("kubernetes:helm.sh/v3:Release", name, args, &resource, opts...)
   382  	if err != nil {
   383  		return nil, err
   384  	}
   385  	return &resource, nil
   386  }
   387  
   388  // GetRelease gets an existing Release resource's state with the given name, ID, and optional
   389  // state properties that are used to uniquely qualify the lookup (nil if not required).
   390  func GetRelease(ctx *pulumi.Context,
   391  	name string, id pulumi.IDInput, state *ReleaseState, opts ...pulumi.ResourceOption) (*Release, error) {
   392  	var resource Release
   393  	err := ctx.ReadResource("kubernetes:helm.sh/v3:Release", name, id, state, &resource, opts...)
   394  	if err != nil {
   395  		return nil, err
   396  	}
   397  	return &resource, nil
   398  }
   399  
   400  // Input properties used for looking up and filtering Release resources.
   401  type releaseState struct {
   402  }
   403  
   404  type ReleaseState struct {
   405  }
   406  
   407  func (ReleaseState) ElementType() reflect.Type {
   408  	return reflect.TypeOf((*releaseState)(nil)).Elem()
   409  }
   410  
   411  type releaseArgs struct {
   412  	// Whether to allow Null values in helm chart configs.
   413  	AllowNullValues *bool `pulumi:"allowNullValues"`
   414  	// If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
   415  	Atomic *bool `pulumi:"atomic"`
   416  	// Chart name to be installed. A path may be used.
   417  	Chart string `pulumi:"chart"`
   418  	// Allow deletion of new resources created in this upgrade when upgrade fails.
   419  	CleanupOnFail *bool   `pulumi:"cleanupOnFail"`
   420  	Compat        *string `pulumi:"compat"`
   421  	// Create the namespace if it does not exist.
   422  	CreateNamespace *bool `pulumi:"createNamespace"`
   423  	// Run helm dependency update before installing the chart.
   424  	DependencyUpdate *bool `pulumi:"dependencyUpdate"`
   425  	// Add a custom description
   426  	Description *string `pulumi:"description"`
   427  	// Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
   428  	Devel *bool `pulumi:"devel"`
   429  	// Prevent CRD hooks from running, but run other hooks.  See helm install --no-crd-hook
   430  	DisableCRDHooks *bool `pulumi:"disableCRDHooks"`
   431  	// If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
   432  	DisableOpenapiValidation *bool `pulumi:"disableOpenapiValidation"`
   433  	// Prevent hooks from running.
   434  	DisableWebhooks *bool `pulumi:"disableWebhooks"`
   435  	// Force resource update through delete/recreate if needed.
   436  	ForceUpdate *bool `pulumi:"forceUpdate"`
   437  	// Location of public keys used for verification. Used only if `verify` is true
   438  	Keyring *string `pulumi:"keyring"`
   439  	// Run helm lint when planning.
   440  	Lint *bool `pulumi:"lint"`
   441  	// The rendered manifests as JSON. Not yet supported.
   442  	Manifest map[string]interface{} `pulumi:"manifest"`
   443  	// Limit the maximum number of revisions saved per release. Use 0 for no limit.
   444  	MaxHistory *int `pulumi:"maxHistory"`
   445  	// Release name.
   446  	Name *string `pulumi:"name"`
   447  	// Namespace to install the release into.
   448  	Namespace *string `pulumi:"namespace"`
   449  	// Postrender command to run.
   450  	Postrender *string `pulumi:"postrender"`
   451  	// Perform pods restart during upgrade/rollback.
   452  	RecreatePods *bool `pulumi:"recreatePods"`
   453  	// If set, render subchart notes along with the parent.
   454  	RenderSubchartNotes *bool `pulumi:"renderSubchartNotes"`
   455  	// Re-use the given name, even if that name is already used. This is unsafe in production
   456  	Replace *bool `pulumi:"replace"`
   457  	// Specification defining the Helm chart repository to use.
   458  	RepositoryOpts *RepositoryOpts `pulumi:"repositoryOpts"`
   459  	// When upgrading, reset the values to the ones built into the chart.
   460  	ResetValues *bool `pulumi:"resetValues"`
   461  	// Names of resources created by the release grouped by "kind/version".
   462  	ResourceNames map[string][]string `pulumi:"resourceNames"`
   463  	// When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
   464  	ReuseValues *bool `pulumi:"reuseValues"`
   465  	// 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.
   466  	SkipAwait *bool `pulumi:"skipAwait"`
   467  	// If set, no CRDs will be installed. By default, CRDs are installed if not already present.
   468  	SkipCrds *bool `pulumi:"skipCrds"`
   469  	// Time in seconds to wait for any individual kubernetes operation.
   470  	Timeout *int `pulumi:"timeout"`
   471  	// List of assets (raw yaml files). Content is read and merged with values.
   472  	ValueYamlFiles []pulumi.AssetOrArchive `pulumi:"valueYamlFiles"`
   473  	// Custom values set for the release.
   474  	Values map[string]interface{} `pulumi:"values"`
   475  	// Verify the package before installing it.
   476  	Verify *bool `pulumi:"verify"`
   477  	// Specify the exact chart version to install. If this is not specified, the latest version is installed.
   478  	Version *string `pulumi:"version"`
   479  	// Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
   480  	WaitForJobs *bool `pulumi:"waitForJobs"`
   481  }
   482  
   483  // The set of arguments for constructing a Release resource.
   484  type ReleaseArgs struct {
   485  	// Whether to allow Null values in helm chart configs.
   486  	AllowNullValues pulumi.BoolPtrInput
   487  	// If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
   488  	Atomic pulumi.BoolPtrInput
   489  	// Chart name to be installed. A path may be used.
   490  	Chart pulumi.StringInput
   491  	// Allow deletion of new resources created in this upgrade when upgrade fails.
   492  	CleanupOnFail pulumi.BoolPtrInput
   493  	Compat        pulumi.StringPtrInput
   494  	// Create the namespace if it does not exist.
   495  	CreateNamespace pulumi.BoolPtrInput
   496  	// Run helm dependency update before installing the chart.
   497  	DependencyUpdate pulumi.BoolPtrInput
   498  	// Add a custom description
   499  	Description pulumi.StringPtrInput
   500  	// Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
   501  	Devel pulumi.BoolPtrInput
   502  	// Prevent CRD hooks from running, but run other hooks.  See helm install --no-crd-hook
   503  	DisableCRDHooks pulumi.BoolPtrInput
   504  	// If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
   505  	DisableOpenapiValidation pulumi.BoolPtrInput
   506  	// Prevent hooks from running.
   507  	DisableWebhooks pulumi.BoolPtrInput
   508  	// Force resource update through delete/recreate if needed.
   509  	ForceUpdate pulumi.BoolPtrInput
   510  	// Location of public keys used for verification. Used only if `verify` is true
   511  	Keyring pulumi.StringPtrInput
   512  	// Run helm lint when planning.
   513  	Lint pulumi.BoolPtrInput
   514  	// The rendered manifests as JSON. Not yet supported.
   515  	Manifest pulumi.MapInput
   516  	// Limit the maximum number of revisions saved per release. Use 0 for no limit.
   517  	MaxHistory pulumi.IntPtrInput
   518  	// Release name.
   519  	Name pulumi.StringPtrInput
   520  	// Namespace to install the release into.
   521  	Namespace pulumi.StringPtrInput
   522  	// Postrender command to run.
   523  	Postrender pulumi.StringPtrInput
   524  	// Perform pods restart during upgrade/rollback.
   525  	RecreatePods pulumi.BoolPtrInput
   526  	// If set, render subchart notes along with the parent.
   527  	RenderSubchartNotes pulumi.BoolPtrInput
   528  	// Re-use the given name, even if that name is already used. This is unsafe in production
   529  	Replace pulumi.BoolPtrInput
   530  	// Specification defining the Helm chart repository to use.
   531  	RepositoryOpts RepositoryOptsPtrInput
   532  	// When upgrading, reset the values to the ones built into the chart.
   533  	ResetValues pulumi.BoolPtrInput
   534  	// Names of resources created by the release grouped by "kind/version".
   535  	ResourceNames pulumi.StringArrayMapInput
   536  	// When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
   537  	ReuseValues pulumi.BoolPtrInput
   538  	// 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.
   539  	SkipAwait pulumi.BoolPtrInput
   540  	// If set, no CRDs will be installed. By default, CRDs are installed if not already present.
   541  	SkipCrds pulumi.BoolPtrInput
   542  	// Time in seconds to wait for any individual kubernetes operation.
   543  	Timeout pulumi.IntPtrInput
   544  	// List of assets (raw yaml files). Content is read and merged with values.
   545  	ValueYamlFiles pulumi.AssetOrArchiveArrayInput
   546  	// Custom values set for the release.
   547  	Values pulumi.MapInput
   548  	// Verify the package before installing it.
   549  	Verify pulumi.BoolPtrInput
   550  	// Specify the exact chart version to install. If this is not specified, the latest version is installed.
   551  	Version pulumi.StringPtrInput
   552  	// Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
   553  	WaitForJobs pulumi.BoolPtrInput
   554  }
   555  
   556  func (ReleaseArgs) ElementType() reflect.Type {
   557  	return reflect.TypeOf((*releaseArgs)(nil)).Elem()
   558  }
   559  
   560  type ReleaseInput interface {
   561  	pulumi.Input
   562  
   563  	ToReleaseOutput() ReleaseOutput
   564  	ToReleaseOutputWithContext(ctx context.Context) ReleaseOutput
   565  }
   566  
   567  func (*Release) ElementType() reflect.Type {
   568  	return reflect.TypeOf((**Release)(nil)).Elem()
   569  }
   570  
   571  func (i *Release) ToReleaseOutput() ReleaseOutput {
   572  	return i.ToReleaseOutputWithContext(context.Background())
   573  }
   574  
   575  func (i *Release) ToReleaseOutputWithContext(ctx context.Context) ReleaseOutput {
   576  	return pulumi.ToOutputWithContext(ctx, i).(ReleaseOutput)
   577  }
   578  
   579  // ReleaseArrayInput is an input type that accepts ReleaseArray and ReleaseArrayOutput values.
   580  // You can construct a concrete instance of `ReleaseArrayInput` via:
   581  //
   582  //	ReleaseArray{ ReleaseArgs{...} }
   583  type ReleaseArrayInput interface {
   584  	pulumi.Input
   585  
   586  	ToReleaseArrayOutput() ReleaseArrayOutput
   587  	ToReleaseArrayOutputWithContext(context.Context) ReleaseArrayOutput
   588  }
   589  
   590  type ReleaseArray []ReleaseInput
   591  
   592  func (ReleaseArray) ElementType() reflect.Type {
   593  	return reflect.TypeOf((*[]*Release)(nil)).Elem()
   594  }
   595  
   596  func (i ReleaseArray) ToReleaseArrayOutput() ReleaseArrayOutput {
   597  	return i.ToReleaseArrayOutputWithContext(context.Background())
   598  }
   599  
   600  func (i ReleaseArray) ToReleaseArrayOutputWithContext(ctx context.Context) ReleaseArrayOutput {
   601  	return pulumi.ToOutputWithContext(ctx, i).(ReleaseArrayOutput)
   602  }
   603  
   604  // ReleaseMapInput is an input type that accepts ReleaseMap and ReleaseMapOutput values.
   605  // You can construct a concrete instance of `ReleaseMapInput` via:
   606  //
   607  //	ReleaseMap{ "key": ReleaseArgs{...} }
   608  type ReleaseMapInput interface {
   609  	pulumi.Input
   610  
   611  	ToReleaseMapOutput() ReleaseMapOutput
   612  	ToReleaseMapOutputWithContext(context.Context) ReleaseMapOutput
   613  }
   614  
   615  type ReleaseMap map[string]ReleaseInput
   616  
   617  func (ReleaseMap) ElementType() reflect.Type {
   618  	return reflect.TypeOf((*map[string]*Release)(nil)).Elem()
   619  }
   620  
   621  func (i ReleaseMap) ToReleaseMapOutput() ReleaseMapOutput {
   622  	return i.ToReleaseMapOutputWithContext(context.Background())
   623  }
   624  
   625  func (i ReleaseMap) ToReleaseMapOutputWithContext(ctx context.Context) ReleaseMapOutput {
   626  	return pulumi.ToOutputWithContext(ctx, i).(ReleaseMapOutput)
   627  }
   628  
   629  type ReleaseOutput struct{ *pulumi.OutputState }
   630  
   631  func (ReleaseOutput) ElementType() reflect.Type {
   632  	return reflect.TypeOf((**Release)(nil)).Elem()
   633  }
   634  
   635  func (o ReleaseOutput) ToReleaseOutput() ReleaseOutput {
   636  	return o
   637  }
   638  
   639  func (o ReleaseOutput) ToReleaseOutputWithContext(ctx context.Context) ReleaseOutput {
   640  	return o
   641  }
   642  
   643  // Whether to allow Null values in helm chart configs.
   644  func (o ReleaseOutput) AllowNullValues() pulumi.BoolPtrOutput {
   645  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.AllowNullValues }).(pulumi.BoolPtrOutput)
   646  }
   647  
   648  // If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
   649  func (o ReleaseOutput) Atomic() pulumi.BoolPtrOutput {
   650  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.Atomic }).(pulumi.BoolPtrOutput)
   651  }
   652  
   653  // Chart name to be installed. A path may be used.
   654  func (o ReleaseOutput) Chart() pulumi.StringOutput {
   655  	return o.ApplyT(func(v *Release) pulumi.StringOutput { return v.Chart }).(pulumi.StringOutput)
   656  }
   657  
   658  // Allow deletion of new resources created in this upgrade when upgrade fails.
   659  func (o ReleaseOutput) CleanupOnFail() pulumi.BoolPtrOutput {
   660  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.CleanupOnFail }).(pulumi.BoolPtrOutput)
   661  }
   662  
   663  // Create the namespace if it does not exist.
   664  func (o ReleaseOutput) CreateNamespace() pulumi.BoolPtrOutput {
   665  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.CreateNamespace }).(pulumi.BoolPtrOutput)
   666  }
   667  
   668  // Run helm dependency update before installing the chart.
   669  func (o ReleaseOutput) DependencyUpdate() pulumi.BoolPtrOutput {
   670  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.DependencyUpdate }).(pulumi.BoolPtrOutput)
   671  }
   672  
   673  // Add a custom description
   674  func (o ReleaseOutput) Description() pulumi.StringPtrOutput {
   675  	return o.ApplyT(func(v *Release) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   676  }
   677  
   678  // Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
   679  func (o ReleaseOutput) Devel() pulumi.BoolPtrOutput {
   680  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.Devel }).(pulumi.BoolPtrOutput)
   681  }
   682  
   683  // Prevent CRD hooks from running, but run other hooks.  See helm install --no-crd-hook
   684  func (o ReleaseOutput) DisableCRDHooks() pulumi.BoolPtrOutput {
   685  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.DisableCRDHooks }).(pulumi.BoolPtrOutput)
   686  }
   687  
   688  // If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
   689  func (o ReleaseOutput) DisableOpenapiValidation() pulumi.BoolPtrOutput {
   690  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.DisableOpenapiValidation }).(pulumi.BoolPtrOutput)
   691  }
   692  
   693  // Prevent hooks from running.
   694  func (o ReleaseOutput) DisableWebhooks() pulumi.BoolPtrOutput {
   695  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.DisableWebhooks }).(pulumi.BoolPtrOutput)
   696  }
   697  
   698  // Force resource update through delete/recreate if needed.
   699  func (o ReleaseOutput) ForceUpdate() pulumi.BoolPtrOutput {
   700  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.ForceUpdate }).(pulumi.BoolPtrOutput)
   701  }
   702  
   703  // Location of public keys used for verification. Used only if `verify` is true
   704  func (o ReleaseOutput) Keyring() pulumi.StringPtrOutput {
   705  	return o.ApplyT(func(v *Release) pulumi.StringPtrOutput { return v.Keyring }).(pulumi.StringPtrOutput)
   706  }
   707  
   708  // Run helm lint when planning.
   709  func (o ReleaseOutput) Lint() pulumi.BoolPtrOutput {
   710  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.Lint }).(pulumi.BoolPtrOutput)
   711  }
   712  
   713  // The rendered manifests as JSON. Not yet supported.
   714  func (o ReleaseOutput) Manifest() pulumi.MapOutput {
   715  	return o.ApplyT(func(v *Release) pulumi.MapOutput { return v.Manifest }).(pulumi.MapOutput)
   716  }
   717  
   718  // Limit the maximum number of revisions saved per release. Use 0 for no limit.
   719  func (o ReleaseOutput) MaxHistory() pulumi.IntPtrOutput {
   720  	return o.ApplyT(func(v *Release) pulumi.IntPtrOutput { return v.MaxHistory }).(pulumi.IntPtrOutput)
   721  }
   722  
   723  // Release name.
   724  func (o ReleaseOutput) Name() pulumi.StringPtrOutput {
   725  	return o.ApplyT(func(v *Release) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput)
   726  }
   727  
   728  // Namespace to install the release into.
   729  func (o ReleaseOutput) Namespace() pulumi.StringPtrOutput {
   730  	return o.ApplyT(func(v *Release) pulumi.StringPtrOutput { return v.Namespace }).(pulumi.StringPtrOutput)
   731  }
   732  
   733  // Postrender command to run.
   734  func (o ReleaseOutput) Postrender() pulumi.StringPtrOutput {
   735  	return o.ApplyT(func(v *Release) pulumi.StringPtrOutput { return v.Postrender }).(pulumi.StringPtrOutput)
   736  }
   737  
   738  // Perform pods restart during upgrade/rollback.
   739  func (o ReleaseOutput) RecreatePods() pulumi.BoolPtrOutput {
   740  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.RecreatePods }).(pulumi.BoolPtrOutput)
   741  }
   742  
   743  // If set, render subchart notes along with the parent.
   744  func (o ReleaseOutput) RenderSubchartNotes() pulumi.BoolPtrOutput {
   745  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.RenderSubchartNotes }).(pulumi.BoolPtrOutput)
   746  }
   747  
   748  // Re-use the given name, even if that name is already used. This is unsafe in production
   749  func (o ReleaseOutput) Replace() pulumi.BoolPtrOutput {
   750  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.Replace }).(pulumi.BoolPtrOutput)
   751  }
   752  
   753  // Specification defining the Helm chart repository to use.
   754  func (o ReleaseOutput) RepositoryOpts() RepositoryOptsPtrOutput {
   755  	return o.ApplyT(func(v *Release) RepositoryOptsPtrOutput { return v.RepositoryOpts }).(RepositoryOptsPtrOutput)
   756  }
   757  
   758  // When upgrading, reset the values to the ones built into the chart.
   759  func (o ReleaseOutput) ResetValues() pulumi.BoolPtrOutput {
   760  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.ResetValues }).(pulumi.BoolPtrOutput)
   761  }
   762  
   763  // Names of resources created by the release grouped by "kind/version".
   764  func (o ReleaseOutput) ResourceNames() pulumi.StringArrayMapOutput {
   765  	return o.ApplyT(func(v *Release) pulumi.StringArrayMapOutput { return v.ResourceNames }).(pulumi.StringArrayMapOutput)
   766  }
   767  
   768  // When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
   769  func (o ReleaseOutput) ReuseValues() pulumi.BoolPtrOutput {
   770  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.ReuseValues }).(pulumi.BoolPtrOutput)
   771  }
   772  
   773  // 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.
   774  func (o ReleaseOutput) SkipAwait() pulumi.BoolPtrOutput {
   775  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.SkipAwait }).(pulumi.BoolPtrOutput)
   776  }
   777  
   778  // If set, no CRDs will be installed. By default, CRDs are installed if not already present.
   779  func (o ReleaseOutput) SkipCrds() pulumi.BoolPtrOutput {
   780  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.SkipCrds }).(pulumi.BoolPtrOutput)
   781  }
   782  
   783  // Status of the deployed release.
   784  func (o ReleaseOutput) Status() ReleaseStatusOutput {
   785  	return o.ApplyT(func(v *Release) ReleaseStatusOutput { return v.Status }).(ReleaseStatusOutput)
   786  }
   787  
   788  // Time in seconds to wait for any individual kubernetes operation.
   789  func (o ReleaseOutput) Timeout() pulumi.IntPtrOutput {
   790  	return o.ApplyT(func(v *Release) pulumi.IntPtrOutput { return v.Timeout }).(pulumi.IntPtrOutput)
   791  }
   792  
   793  // List of assets (raw yaml files). Content is read and merged with values (with values taking precedence).
   794  func (o ReleaseOutput) ValueYamlFiles() pulumi.AssetOrArchiveArrayOutput {
   795  	return o.ApplyT(func(v *Release) pulumi.AssetOrArchiveArrayOutput { return v.ValueYamlFiles }).(pulumi.AssetOrArchiveArrayOutput)
   796  }
   797  
   798  // Custom values set for the release.
   799  func (o ReleaseOutput) Values() pulumi.MapOutput {
   800  	return o.ApplyT(func(v *Release) pulumi.MapOutput { return v.Values }).(pulumi.MapOutput)
   801  }
   802  
   803  // Verify the package before installing it.
   804  func (o ReleaseOutput) Verify() pulumi.BoolPtrOutput {
   805  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.Verify }).(pulumi.BoolPtrOutput)
   806  }
   807  
   808  // Specify the exact chart version to install. If this is not specified, the latest version is installed.
   809  func (o ReleaseOutput) Version() pulumi.StringPtrOutput {
   810  	return o.ApplyT(func(v *Release) pulumi.StringPtrOutput { return v.Version }).(pulumi.StringPtrOutput)
   811  }
   812  
   813  // Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
   814  func (o ReleaseOutput) WaitForJobs() pulumi.BoolPtrOutput {
   815  	return o.ApplyT(func(v *Release) pulumi.BoolPtrOutput { return v.WaitForJobs }).(pulumi.BoolPtrOutput)
   816  }
   817  
   818  type ReleaseArrayOutput struct{ *pulumi.OutputState }
   819  
   820  func (ReleaseArrayOutput) ElementType() reflect.Type {
   821  	return reflect.TypeOf((*[]*Release)(nil)).Elem()
   822  }
   823  
   824  func (o ReleaseArrayOutput) ToReleaseArrayOutput() ReleaseArrayOutput {
   825  	return o
   826  }
   827  
   828  func (o ReleaseArrayOutput) ToReleaseArrayOutputWithContext(ctx context.Context) ReleaseArrayOutput {
   829  	return o
   830  }
   831  
   832  func (o ReleaseArrayOutput) Index(i pulumi.IntInput) ReleaseOutput {
   833  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Release {
   834  		return vs[0].([]*Release)[vs[1].(int)]
   835  	}).(ReleaseOutput)
   836  }
   837  
   838  type ReleaseMapOutput struct{ *pulumi.OutputState }
   839  
   840  func (ReleaseMapOutput) ElementType() reflect.Type {
   841  	return reflect.TypeOf((*map[string]*Release)(nil)).Elem()
   842  }
   843  
   844  func (o ReleaseMapOutput) ToReleaseMapOutput() ReleaseMapOutput {
   845  	return o
   846  }
   847  
   848  func (o ReleaseMapOutput) ToReleaseMapOutputWithContext(ctx context.Context) ReleaseMapOutput {
   849  	return o
   850  }
   851  
   852  func (o ReleaseMapOutput) MapIndex(k pulumi.StringInput) ReleaseOutput {
   853  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Release {
   854  		return vs[0].(map[string]*Release)[vs[1].(string)]
   855  	}).(ReleaseOutput)
   856  }
   857  
   858  func init() {
   859  	pulumi.RegisterInputType(reflect.TypeOf((*ReleaseInput)(nil)).Elem(), &Release{})
   860  	pulumi.RegisterInputType(reflect.TypeOf((*ReleaseArrayInput)(nil)).Elem(), ReleaseArray{})
   861  	pulumi.RegisterInputType(reflect.TypeOf((*ReleaseMapInput)(nil)).Elem(), ReleaseMap{})
   862  	pulumi.RegisterOutputType(ReleaseOutput{})
   863  	pulumi.RegisterOutputType(ReleaseArrayOutput{})
   864  	pulumi.RegisterOutputType(ReleaseMapOutput{})
   865  }