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 }