Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't require values for helm.Release #1761

Merged
merged 9 commits into from
Oct 8, 2021
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## HEAD (Unreleased)

- Fix error for helm.Release previews with computed values (https://github.com/pulumi/pulumi-kubernetes/pull/1760)
- Don't require values for helm.Release (https://github.com/pulumi/pulumi-kubernetes/pull/1761)

## 3.8.0 (October 6, 2021)

Expand Down
4 changes: 1 addition & 3 deletions provider/cmd/pulumi-resource-kubernetes/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -39597,7 +39597,6 @@
"required": [
"chart",
"repositoryOpts",
"values",
"status"
],
"language": {
Expand Down Expand Up @@ -39794,8 +39793,7 @@
},
"requiredInputs": [
"chart",
"repositoryOpts",
"values"
"repositoryOpts"
]
},
"kubernetes:meta/v1:Status": {
Expand Down
2 changes: 0 additions & 2 deletions provider/pkg/gen/overlays.go
Original file line number Diff line number Diff line change
Expand Up @@ -758,7 +758,6 @@ var helmV3ReleaseResource = pschema.ResourceSpec{
Required: []string{
"chart",
"repositoryOpts",
"values",
"status",
},
Language: map[string]pschema.RawMessage{
Expand Down Expand Up @@ -1026,7 +1025,6 @@ var helmV3ReleaseResource = pschema.ResourceSpec{
RequiredInputs: []string{
"chart",
"repositoryOpts",
"values",
},
}

Expand Down
12 changes: 5 additions & 7 deletions provider/pkg/provider/helm_release.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,19 @@ import (
"strings"
"time"

"k8s.io/client-go/tools/clientcmd/api"

jsonpatch "github.com/evanphx/json-patch"
"github.com/golang/protobuf/ptypes/empty"
pbempty "github.com/golang/protobuf/ptypes/empty"
"github.com/mitchellh/mapstructure"
pkgerrors "github.com/pkg/errors"
"github.com/pulumi/pulumi-kubernetes/provider/v3/pkg/metadata"
"github.com/pulumi/pulumi/pkg/v3/resource/provider"
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
logger "github.com/pulumi/pulumi/sdk/v3/go/common/util/logging"

"github.com/golang/protobuf/ptypes/empty"
"github.com/mitchellh/mapstructure"
"github.com/pulumi/pulumi-kubernetes/provider/v3/pkg/metadata"
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
logger "github.com/pulumi/pulumi/sdk/v3/go/common/util/logging"
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
"gopkg.in/yaml.v3"
"helm.sh/helm/v3/pkg/action"
Expand All @@ -41,6 +38,7 @@ import (
"helm.sh/helm/v3/pkg/release"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/tools/clientcmd/api"
)

// Default timeout for awaited install and uninstall operations
Expand Down
2 changes: 1 addition & 1 deletion sdk/dotnet/Helm/V3/Release.cs
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ public InputList<AssetOrArchive> ValueYamlFiles
set => _valueYamlFiles = value;
}

[Input("values", required: true)]
[Input("values")]
private InputMap<object>? _values;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions sdk/go/kubernetes/helm/v3/release.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,6 @@ func NewRelease(ctx *pulumi.Context,
if args.RepositoryOpts == nil {
return nil, errors.New("invalid value for required argument 'RepositoryOpts'")
}
if args.Values == nil {
return nil, errors.New("invalid value for required argument 'Values'")
}
args.Compat = pulumi.StringPtr("true")
var resource Release
err := ctx.RegisterResource("kubernetes:helm.sh/v3:Release", name, args, &resource, opts...)
Expand Down
5 changes: 1 addition & 4 deletions sdk/nodejs/helm/v3/release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,6 @@ export class Release extends pulumi.CustomResource {
if ((!args || args.repositoryOpts === undefined) && !opts.urn) {
throw new Error("Missing required property 'repositoryOpts'");
}
if ((!args || args.values === undefined) && !opts.urn) {
throw new Error("Missing required property 'values'");
}
inputs["atomic"] = args ? args.atomic : undefined;
inputs["chart"] = args ? args.chart : undefined;
inputs["cleanupOnFail"] = args ? args.cleanupOnFail : undefined;
Expand Down Expand Up @@ -396,7 +393,7 @@ export interface ReleaseArgs {
/**
* Custom values set for the release.
*/
values: pulumi.Input<{[key: string]: any}>;
values?: pulumi.Input<{[key: string]: any}>;
/**
* Verify the package before installing it.
*/
Expand Down
35 changes: 17 additions & 18 deletions sdk/python/pulumi_kubernetes/helm/v3/Release.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ class ReleaseArgs:
def __init__(__self__, *,
chart: pulumi.Input[str],
repository_opts: pulumi.Input['RepositoryOptsArgs'],
values: pulumi.Input[Mapping[str, Any]],
atomic: Optional[pulumi.Input[bool]] = None,
cleanup_on_fail: Optional[pulumi.Input[bool]] = None,
compat: Optional[pulumi.Input[str]] = None,
Expand Down Expand Up @@ -46,14 +45,14 @@ def __init__(__self__, *,
skip_crds: Optional[pulumi.Input[bool]] = None,
timeout: Optional[pulumi.Input[int]] = None,
value_yaml_files: Optional[pulumi.Input[Sequence[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]]]] = None,
values: Optional[pulumi.Input[Mapping[str, Any]]] = None,
verify: Optional[pulumi.Input[bool]] = None,
version: Optional[pulumi.Input[str]] = None,
wait_for_jobs: Optional[pulumi.Input[bool]] = None):
"""
The set of arguments for constructing a Release resource.
:param pulumi.Input[str] chart: Chart name to be installed. A path may be used.
:param pulumi.Input['RepositoryOptsArgs'] repository_opts: Specification defining the Helm chart repository to use.
:param pulumi.Input[Mapping[str, Any]] values: Custom values set for the release.
:param pulumi.Input[bool] atomic: If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
:param pulumi.Input[bool] cleanup_on_fail: Allow deletion of new resources created in this upgrade when upgrade fails.
:param pulumi.Input[bool] create_namespace: Create the namespace if it does not exist.
Expand Down Expand Up @@ -81,13 +80,13 @@ def __init__(__self__, *,
:param pulumi.Input[bool] skip_crds: If set, no CRDs will be installed. By default, CRDs are installed if not already present.
:param pulumi.Input[int] timeout: Time in seconds to wait for any individual kubernetes operation.
:param pulumi.Input[Sequence[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]]] value_yaml_files: List of assets (raw yaml files). Content is read and merged with values. Not yet supported.
:param pulumi.Input[Mapping[str, Any]] values: Custom values set for the release.
:param pulumi.Input[bool] verify: Verify the package before installing it.
:param pulumi.Input[str] version: Specify the exact chart version to install. If this is not specified, the latest version is installed.
:param pulumi.Input[bool] wait_for_jobs: Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
"""
pulumi.set(__self__, "chart", chart)
pulumi.set(__self__, "repository_opts", repository_opts)
pulumi.set(__self__, "values", values)
if atomic is not None:
pulumi.set(__self__, "atomic", atomic)
if cleanup_on_fail is not None:
Expand Down Expand Up @@ -144,6 +143,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "timeout", timeout)
if value_yaml_files is not None:
pulumi.set(__self__, "value_yaml_files", value_yaml_files)
if values is not None:
pulumi.set(__self__, "values", values)
if verify is not None:
pulumi.set(__self__, "verify", verify)
if version is not None:
Expand Down Expand Up @@ -175,18 +176,6 @@ def repository_opts(self) -> pulumi.Input['RepositoryOptsArgs']:
def repository_opts(self, value: pulumi.Input['RepositoryOptsArgs']):
pulumi.set(self, "repository_opts", value)

@property
@pulumi.getter
def values(self) -> pulumi.Input[Mapping[str, Any]]:
"""
Custom values set for the release.
"""
return pulumi.get(self, "values")

@values.setter
def values(self, value: pulumi.Input[Mapping[str, Any]]):
pulumi.set(self, "values", value)

@property
@pulumi.getter
def atomic(self) -> Optional[pulumi.Input[bool]]:
Expand Down Expand Up @@ -520,6 +509,18 @@ def value_yaml_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[
def value_yaml_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]]]]):
pulumi.set(self, "value_yaml_files", value)

@property
@pulumi.getter
def values(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
"""
Custom values set for the release.
"""
return pulumi.get(self, "values")

@values.setter
def values(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
pulumi.set(self, "values", value)

@property
@pulumi.getter
def verify(self) -> Optional[pulumi.Input[bool]]:
Expand Down Expand Up @@ -744,8 +745,6 @@ def _internal_init(__self__,
__props__.__dict__["skip_crds"] = skip_crds
__props__.__dict__["timeout"] = timeout
__props__.__dict__["value_yaml_files"] = value_yaml_files
if values is None and not opts.urn:
raise TypeError("Missing required property 'values'")
__props__.__dict__["values"] = values
__props__.__dict__["verify"] = verify
__props__.__dict__["version"] = version
Expand Down Expand Up @@ -1051,7 +1050,7 @@ def value_yaml_files(self) -> pulumi.Output[Optional[Sequence[Union[pulumi.Asset

@property
@pulumi.getter
def values(self) -> pulumi.Output[Mapping[str, Any]]:
def values(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
"""
Custom values set for the release.
"""
Expand Down
1 change: 0 additions & 1 deletion tests/sdk/nodejs/examples/helm-release-namespace/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ const alertManager = new k8s.helm.v3.Release("alertmanager", {
repositoryOpts: {
repo: "https://prometheus-community.github.io/helm-charts",
},
values: {},
});

// Ensure we get the expected namespace for the stateful set.
Expand Down