From 182ef58f334cddf7d42d1ba0c199a9a5428f8ae6 Mon Sep 17 00:00:00 2001 From: Richard Shade Date: Mon, 3 Feb 2025 10:42:46 -0600 Subject: [PATCH] Fixing types in support for Dotnet --- .pulumi.version | 2 +- .../schema.json | 1 + sdk/dotnet/CoreDNS.cs | 2 +- sdk/go.mod | 4 ++-- sdk/go.sum | 8 ++++---- sdk/go/kubernetes-coredns/coreDNS.go | 2 +- .../pulumi/kubernetescoredns/CoreDNSArgs.java | 16 +++------------- sdk/nodejs/coreDNS.ts | 2 +- .../pulumi_kubernetes_coredns/_utilities.py | 12 ++++++++---- sdk/python/pulumi_kubernetes_coredns/core_dns.py | 14 +++++++------- 10 files changed, 29 insertions(+), 34 deletions(-) diff --git a/.pulumi.version b/.pulumi.version index 193667b..2192ae9 100644 --- a/.pulumi.version +++ b/.pulumi.version @@ -1 +1 @@ -3.147.0 +3.148.0 diff --git a/provider/cmd/pulumi-resource-kubernetes-coredns/schema.json b/provider/cmd/pulumi-resource-kubernetes-coredns/schema.json index ce5f223..51b9da1 100644 --- a/provider/cmd/pulumi-resource-kubernetes-coredns/schema.json +++ b/provider/cmd/pulumi-resource-kubernetes-coredns/schema.json @@ -56,6 +56,7 @@ "type": "array" }, "helmOptions": { + "plain": true, "$ref": "#/types/kubernetes-coredns:index:Release", "description": "HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args." }, diff --git a/sdk/dotnet/CoreDNS.cs b/sdk/dotnet/CoreDNS.cs index 80eb70d..549e17e 100644 --- a/sdk/dotnet/CoreDNS.cs +++ b/sdk/dotnet/CoreDNS.cs @@ -113,7 +113,7 @@ public InputList ExtraVolumes /// HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. /// [Input("helmOptions")] - public Input? HelmOptions { get; set; } + public Inputs.ReleaseArgs? HelmOptions { get; set; } /// /// Alternative configuration for HPA deployment if wanted. diff --git a/sdk/go.mod b/sdk/go.mod index 7e326d0..1284bdd 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,8 +4,8 @@ go 1.22.4 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.21.0 - github.com/pulumi/pulumi/sdk/v3 v3.147.0 + github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.21.1 + github.com/pulumi/pulumi/sdk/v3 v3.148.0 ) require ( diff --git a/sdk/go.sum b/sdk/go.sum index 0e8c652..d6d2826 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -148,10 +148,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.21.0 h1:UedeAwQ3afL/sK0eXl1cKLnqwfu2V+TQhZCVUaNmjJE= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.21.0/go.mod h1:RLaX8dqvWIqDV6VjScsc1tJWp1GoZ1IDSyOPIQ/y4ps= -github.com/pulumi/pulumi/sdk/v3 v3.147.0 h1:8ZDZnEsCZa6shw1dwIDUssbYMooYyebhpmx5feuZCqM= -github.com/pulumi/pulumi/sdk/v3 v3.147.0/go.mod h1:+WC9aIDo8fMgd2g0jCHuZU2S/VYNLRAZ3QXt6YVgwaA= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.21.1 h1:rDeYtMgQSf4ATFhqt33P65ulyPCbzAHFdWTyZa2iVcA= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.21.1/go.mod h1:RLaX8dqvWIqDV6VjScsc1tJWp1GoZ1IDSyOPIQ/y4ps= +github.com/pulumi/pulumi/sdk/v3 v3.148.0 h1:tEw1FQOKoQVP7HfZWI9DJQl4ZvGaL1z2ixZdN2wGV/o= +github.com/pulumi/pulumi/sdk/v3 v3.148.0/go.mod h1:+WC9aIDo8fMgd2g0jCHuZU2S/VYNLRAZ3QXt6YVgwaA= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= diff --git a/sdk/go/kubernetes-coredns/coreDNS.go b/sdk/go/kubernetes-coredns/coreDNS.go index 176c60d..a6f00b5 100644 --- a/sdk/go/kubernetes-coredns/coreDNS.go +++ b/sdk/go/kubernetes-coredns/coreDNS.go @@ -118,7 +118,7 @@ type CoreDNSArgs struct { // Optional array of extra volumes to create. ExtraVolumes corev1.VolumeArrayInput // HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. - HelmOptions ReleasePtrInput + HelmOptions *ReleaseArgs // Alternative configuration for HPA deployment if wanted. Hpa CoreDNSHPAPtrInput // The image to pull. diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescoredns/CoreDNSArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescoredns/CoreDNSArgs.java index 69effef..fcbf00c 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetescoredns/CoreDNSArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetescoredns/CoreDNSArgs.java @@ -149,13 +149,13 @@ public Optional>> extraVolumes() { * */ @Import(name="helmOptions") - private @Nullable Output helmOptions; + private @Nullable ReleaseArgs helmOptions; /** * @return HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. * */ - public Optional> helmOptions() { + public Optional helmOptions() { return Optional.ofNullable(this.helmOptions); } @@ -717,21 +717,11 @@ public Builder extraVolumes(VolumeArgs... extraVolumes) { * @return builder * */ - public Builder helmOptions(@Nullable Output helmOptions) { + public Builder helmOptions(@Nullable ReleaseArgs helmOptions) { $.helmOptions = helmOptions; return this; } - /** - * @param helmOptions HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. - * - * @return builder - * - */ - public Builder helmOptions(ReleaseArgs helmOptions) { - return helmOptions(Output.of(helmOptions)); - } - /** * @param hpa Alternative configuration for HPA deployment if wanted. * diff --git a/sdk/nodejs/coreDNS.ts b/sdk/nodejs/coreDNS.ts index 03342c7..c3e6cb5 100644 --- a/sdk/nodejs/coreDNS.ts +++ b/sdk/nodejs/coreDNS.ts @@ -116,7 +116,7 @@ export interface CoreDNSArgs { /** * HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. */ - helmOptions?: pulumi.Input; + helmOptions?: inputs.ReleaseArgs; /** * Alternative configuration for HPA deployment if wanted. */ diff --git a/sdk/python/pulumi_kubernetes_coredns/_utilities.py b/sdk/python/pulumi_kubernetes_coredns/_utilities.py index 67959f3..599b4e9 100644 --- a/sdk/python/pulumi_kubernetes_coredns/_utilities.py +++ b/sdk/python/pulumi_kubernetes_coredns/_utilities.py @@ -89,12 +89,16 @@ def _get_semver_version(): elif pep440_version.pre_tag == 'rc': prerelease = f"rc.{pep440_version.pre}" elif pep440_version.dev is not None: + # PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge + # between the two, we convert our dev build version into a prerelease tag. This matches what all of our other + # packages do when constructing their own semver string. prerelease = f"dev.{pep440_version.dev}" + elif pep440_version.local is not None: + # PEP440 only allows a small set of prerelease tags, so when converting an arbitrary prerelease, + # PypiVersion in /pkg/codegen/python/utilities.go converts it to a local version. Therefore, we need to + # do the reverse conversion here and set the local version as the prerelease tag. + prerelease = pep440_version.local - # The only significant difference between PEP440 and semver as it pertains to us is that PEP440 has explicit support - # for dev builds, while semver encodes them as "prerelease" versions. In order to bridge between the two, we convert - # our dev build version into a prerelease tag. This matches what all of our other packages do when constructing - # their own semver string. return SemverVersion(major=major, minor=minor, patch=patch, prerelease=prerelease) diff --git a/sdk/python/pulumi_kubernetes_coredns/core_dns.py b/sdk/python/pulumi_kubernetes_coredns/core_dns.py index 7630d8a..185a964 100644 --- a/sdk/python/pulumi_kubernetes_coredns/core_dns.py +++ b/sdk/python/pulumi_kubernetes_coredns/core_dns.py @@ -29,7 +29,7 @@ def __init__(__self__, *, extra_secrets: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] = None, extra_volume_mounts: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] = None, extra_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeArgs']]]] = None, - helm_options: Optional[pulumi.Input['ReleaseArgs']] = None, + helm_options: Optional['ReleaseArgs'] = None, hpa: Optional[pulumi.Input['CoreDNSHPAArgs']] = None, image: Optional[pulumi.Input['CoreDNSImageArgs']] = None, is_cluster_service: Optional[pulumi.Input[bool]] = None, @@ -61,7 +61,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]] extra_secrets: Optional array of secrets to mount inside coredns container. Possible usecase: need for secure connection with etcd backend. Optional array of mount points for extraVolumes. :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]] extra_volume_mounts: Optional array of mount points for extraVolumes. :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeArgs']]] extra_volumes: Optional array of extra volumes to create. - :param pulumi.Input['ReleaseArgs'] helm_options: HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. + :param 'ReleaseArgs' helm_options: HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. :param pulumi.Input['CoreDNSHPAArgs'] hpa: Alternative configuration for HPA deployment if wanted. :param pulumi.Input['CoreDNSImageArgs'] image: The image to pull. :param pulumi.Input[bool] is_cluster_service: Specifies whether chart should be deployed as cluster-service or normal k8s app. @@ -231,14 +231,14 @@ def extra_volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulu @property @pulumi.getter(name="helmOptions") - def helm_options(self) -> Optional[pulumi.Input['ReleaseArgs']]: + def helm_options(self) -> Optional['ReleaseArgs']: """ HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. """ return pulumi.get(self, "helm_options") @helm_options.setter - def helm_options(self, value: Optional[pulumi.Input['ReleaseArgs']]): + def helm_options(self, value: Optional['ReleaseArgs']): pulumi.set(self, "helm_options", value) @property @@ -515,7 +515,7 @@ def __init__(__self__, extra_secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None, extra_volume_mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None, extra_volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeArgs']]]]] = None, - helm_options: Optional[pulumi.Input[Union['ReleaseArgs', 'ReleaseArgsDict']]] = None, + helm_options: Optional[Union['ReleaseArgs', 'ReleaseArgsDict']] = None, hpa: Optional[pulumi.Input[Union['CoreDNSHPAArgs', 'CoreDNSHPAArgsDict']]] = None, image: Optional[pulumi.Input[Union['CoreDNSImageArgs', 'CoreDNSImageArgsDict']]] = None, is_cluster_service: Optional[pulumi.Input[bool]] = None, @@ -551,7 +551,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] extra_secrets: Optional array of secrets to mount inside coredns container. Possible usecase: need for secure connection with etcd backend. Optional array of mount points for extraVolumes. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] extra_volume_mounts: Optional array of mount points for extraVolumes. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeArgs']]]] extra_volumes: Optional array of extra volumes to create. - :param pulumi.Input[Union['ReleaseArgs', 'ReleaseArgsDict']] helm_options: HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. + :param Union['ReleaseArgs', 'ReleaseArgsDict'] helm_options: HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. :param pulumi.Input[Union['CoreDNSHPAArgs', 'CoreDNSHPAArgsDict']] hpa: Alternative configuration for HPA deployment if wanted. :param pulumi.Input[Union['CoreDNSImageArgs', 'CoreDNSImageArgsDict']] image: The image to pull. :param pulumi.Input[bool] is_cluster_service: Specifies whether chart should be deployed as cluster-service or normal k8s app. @@ -605,7 +605,7 @@ def _internal_init(__self__, extra_secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None, extra_volume_mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None, extra_volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeArgs']]]]] = None, - helm_options: Optional[pulumi.Input[Union['ReleaseArgs', 'ReleaseArgsDict']]] = None, + helm_options: Optional[Union['ReleaseArgs', 'ReleaseArgsDict']] = None, hpa: Optional[pulumi.Input[Union['CoreDNSHPAArgs', 'CoreDNSHPAArgsDict']]] = None, image: Optional[pulumi.Input[Union['CoreDNSImageArgs', 'CoreDNSImageArgsDict']]] = None, is_cluster_service: Optional[pulumi.Input[bool]] = None,