-
Objects created on clusters older than 1.18 will no longer see a
before-first-apply
conflict when Pulumi performs a server-side apply for the first time. (#3275) -
The provider's user agent is now set correctly when communicating with the Kubernetes API server. (#3267)
- The provider's Pulumi dependency was updated to version v3.136.1 to address potential "pulumi.runtime.invokeOutput is not a function" errors. (pulumi/pulumi#17518)
- Schemagen is now a library that can be consumed by other packages. (#3187)
- Updated beta Kubernetes client libraries to stable v1.31 release. (#3196)
-
The new
enableSecretMutable
provider configuration option treats changes toSecrets
as updates instead of replacements (similar to theenableConfigMapMutable
option).The default replacement behavior can be preserved for a particular
Secret
by setting itsimmutable
field totrue
. (#2291)Note: These options (
enableSecretMutable
andenableConfigMapMutable
) may become the default behavior in a future v5 release of the provider. Programs that depend on the replacement ofSecrets
andConfigMaps
(e.g. to trigger updates for downstream dependencies likeDeployments
) are recommended to explicitly specifyimmutable: true
. -
A warning is now emitted if an object has finalizers which might be blocking deletion. (#1418)
-
EXPERIMENTAL: Generic await logic is now available as an opt-in feature. Running a program with
PULUMI_K8S_AWAIT_ALL=true
will now cause Pulumi to await readiness for all resources, including custom resources.Generic readiness is determined according to some well-known conventions (like the "Ready" condition) as determined by cli-utils.
Pulumi's current behavior, without this feature enabled, is to assume some resources are immediately available, which can cause downstream resources to fail.
Existing readiness logic is unaffected by this setting. (#2996)
-
EXPERIMENTAL: The
pulumi.com/waitFor
annotation was introduced to allow for custom readiness checks. This override Pulumi's own await logic for the resource (however thepulumi.com/skipAwait
annotation still takes precedence).The value of this annotation can take 3 forms:
-
A string prefixed with
jsonpath=
followed by a JSONPath expression and an optional value.The JSONPath expression accepts the same syntax as
kubectl get -o jsonpath={...}
.If a value is provided, the resource is considered ready when the JSONPath expression evaluates to the same value. For example this resource expects its "phase" field to have a value of "Running":
`pulumi.com/waitFor: "jsonpath={.status.phase}=Running"`
If a value is not provided, the resource will be considered ready when any value exists at the given path, similar to
kubectl wait --for jsonpath=...
. This resource will wait until it has a webhook configured with a CA bundle:`pulumi.com/waitFor: "jsonpath={.webhooks[*].clientConfig.caBundle}"`
-
A string prefixed with
condition=
followed by the type of the condition and an optional status. This matches the behavior ofkubectl wait --for=condition=...
and will wait until the resource has a matching condition. The expected status defaults to "True" if not specified.`pulumi.com/waitFor: "condition=Synced"` `pulumi.com/waitFor: "condition=Reconciling=False"`
-
A string containing a JSON array of multiple
jsonpath=
andcondition=
expressions.`pulumi.com/waitFor: '["jsonpath={.foo}", "condition=Bar"]'`
-
-
Pulumi will now emit logs for any Kubernetes "Warning" Events associated with resources being created, updated or deleted. (https://github.com/pulumi/pulumi-kubernetes/pull/3135/files)
-
The
immutable
field is now respected forConfigMaps
when the provider is configured withenableConfigMapMutable
. (#3181) -
Fixed a panic that could occur during deletion. (#3157)
- Fixed a panic that would occur when updating
ServiceAccounts
. (#3166) - Fixed a panic that could occur when using
clusterIdentifier
provider configuration. (#3168)
- Updated Kubernetes schemas and libraries to v1.31.0. (#3144)
Services
with selectors targeting 0Pods
will no longer hang indefinitely. (#605)Services
without selectors will no longer hang indefinitely. (#799)
-
clusterIdentifier
configuration can now be used to manually control the replacement behavior of a provider resource. (#3068) -
Pod errors now include the pod's last termination state, as well as the pod's termination message if available. (#3091)
The pod's termination message can be helpful in
CrashLoopBackOff
situations but will only be reported if it was correctly configured.By default, the pod's termination message is read from
/dev/termination-log
. This location can be configured withterminationMessagePath
.Use
terminationMessagePolicy: FallbackToLogsOnError
to use the pod's logs as its termination message. -
Documentation is now generated for all languages supported by overlay types. (#3107)
- Updated logic to accurately detect if a resource is a Patch variant. (#3102)
- Added Java as a supported language for
CustomResource
overlays. (#3120) - Status messages reported during updates are now more accurately scoped to the affected resource. (#3128)
PersistentVolumeClaims
with a bind mode ofWaitForFirstConsumer
will no longer hang indefinitely. (#3130)- [java] Fixed an issue where child resources could not be registered by Chart v4. (#3119)
CustomResource
should have plainapiVersion
andkind
properties (#3079)- Updated Kubernetes schema and libraries to v1.31.0. (#3144)
- Prevent CustomResourceDefinitions from always being applied to the cluster during preview operations (#3096)
TypedDict
input types for the Python SDK (#3070)
- The
Release
resource no longer ignores empty lists when merging values. (#2995)
Chart
v4 now handles an array of assets. (#3061)- Fix previews always failing when a resource is to be replaced (#3053)
- Update to pulumi-java v0.12.0 (#3025)
- Fixed Chart v4 fails on update (#3046)
- Fixed a panic that occurs when diffing Job resources containing
replaceUnready
annotations and an unreachable cluster connection. (#3024) - Fixed spurious diffing for updates when in renderYaml mode (#3030)
- Added a new Helm Chart v4 resource. (#2947)
- Added support for deletion propagation policies (e.g. Orphan). (#3011)
- Server-side apply conflict errors now include the original field manager's name. (#2983)
- Pulumi will now wait for DaemonSets to become ready. (#2953)
- The Release resource's merge behavior for
valueYamlFiles
now more closely matches Helm's behavior. (#2963)
- Helm Chart V3 previews no longer fail when the cluster is unreachable. (#2992)
- Fixed a panic that could occur when a missing field became
null
. (#1970)
- [dotnet] Unknowns for previews involving an uninitialized provider (#2957)
- Update Kubernetes schemas and libraries to v1.30.0 (#2932)
- ConfigGroup V2 (#2844)
- ConfigFile V2 (#2862)
- Bugfix for ambiguous kinds (#2889)
- [yaml/v2] Support for resource ordering (#2894)
- Bugfix for deployment await logic not referencing the correct deployment status (#2943)
A new MLC-based implementation of ConfigGroup
and of ConfigFile
is now available in the "yaml/v2" package. These resources are
usable in all Pulumi languages, including Pulumi YAML and in the Java Pulumi SDK.
Note that transformations aren't supported in this release (see pulumi/pulumi#12996).
- Use async invokes to avoid hangs/stalls in Python
helm
,kustomize
, andyaml
components (#2863)
- Fix SSA ignoreChanges by enhancing field manager path comparisons (#2828)
- Update nodejs SDK dependencies (#2858, #2861)
- skip normalization in preview w/ computed fields (#2846)
- Fix DiffConfig issue when when provider's kubeconfig is set to file path (#2771)
- Fix for replacement having incorrect status messages (#2810)
- Use output properties for await logic (#2790)
- Support for metadata.generateName (CSA) (#2808)
- Fix unmarshalling of Helm values yaml file (#2815)
- Handle unknowns in Helm Release resource (#2822)
- Fix deployment await logic for accurate rollout detection
- Fix JSON encoding of KubeVersion and Version on Chart resource (.NET SDK) (#2740)
- Fix option propagation in component resources (Python SDK) (#2717)
- Fix option propagation in component resources (.NET SDK) (#2720)
- Fix option propagation in component resources (NodeJS SDK) (#2713)
- Fix option propagation in component resources (Go SDK) (#2709)
In previous versions of the pulumi-kubernetes .NET SDK, the ConfigFile
and ConfigGroup
component resources inadvertently assigned the wrong parent to the child resource(s).
This would happen when the component resource itself had a parent; the child would be assigned that same parent. This also had the effect of disregarding the component resource's provider in favor of the parent's provider.
For example, here's a before/after look at the component hierarchy:
Before:
├─ pkg:index:MyComponent parent
│ ├─ kubernetes:core/v1:ConfigMap cg-options-cg-options-cm-1
│ ├─ kubernetes:yaml:ConfigFile cg-options-testdata/options/configgroup/manifest.yaml
│ ├─ kubernetes:core/v1:ConfigMap cg-options-configgroup-cm-1
│ ├─ kubernetes:yaml:ConfigFile cg-options-testdata/options/configgroup/empty.yaml
│ └─ kubernetes:yaml:ConfigGroup cg-options
After:
└─ pkg:index:MyComponent parent
└─ kubernetes:yaml:ConfigGroup cg-options
├─ kubernetes:yaml:ConfigFile cg-options-testdata/options/configgroup/manifest.yaml
│ └─ kubernetes:core/v1:ConfigMap cg-options-configgroup-cm-1
└─ kubernetes:core/v1:ConfigMap cg-options-cg-options-cm-1
This release addresses this issue and attempts to heal existing stacks using aliases. This is effective at avoiding a replacement except in the case where the child was created with the wrong provider. In this case, Pulumi will suggest a replacement of the child resource(s), such that they use the correct provider.
- Fix: Refine URN lookup by using its core type for more accurate resource identification (#2719)
- Fix: Helm OCI chart deployment fails in Windows (#2648)
- Fix: compute version field in Check for content detection (#2672)
- Fix: Fix: Helm Release fails with "the server could not find the requested resource" (#2677)
- Fix Helm Chart resource lookup key handling for objects in default namespace (#2655)
- Update Kubernetes schemas and libraries to v1.29.0 (#2690)
- Fix panic when using
PULUMI_KUBERNETES_MANAGED_BY_LABEL
env var with SSA created objects (#2711) - Fix normalization of base64 encoded secrets.data values to strip whitespace (#2715)
#/types/kubernetes:core/v1:ResourceRequirements
- renamed to:
#/types/kubernetes:core/v1:VolumeResourceRequirements
- renamed to:
#/types/kubernetes:core/v1:ResourceRequirementsPatch
- renamed to:
#/types/kubernetes:core/v1:VolumeResourceRequirementsPatch
- renamed to:
flowcontrol.apiserver.k8s.io/v1.FlowSchema
flowcontrol.apiserver.k8s.io/v1.FlowSchemaList
flowcontrol.apiserver.k8s.io/v1.FlowSchemaPatch
flowcontrol.apiserver.k8s.io/v1.PriorityLevelConfiguration
flowcontrol.apiserver.k8s.io/v1.PriorityLevelConfigurationList
flowcontrol.apiserver.k8s.io/v1.PriorityLevelConfigurationPatch
networking.k8s.io/v1alpha1.ServiceCIDR
networking.k8s.io/v1alpha1.ServiceCIDRList
networking.k8s.io/v1alpha1.ServiceCIDRPatch
storage.k8s.io/v1alpha1.VolumeAttributesClass
storage.k8s.io/v1alpha1.VolumeAttributesClassList
storage.k8s.io/v1alpha1.VolumeAttributesClassPatch
- Fix: Make the invoke calls for Helm charts and YAML config resilient to the value being None or an empty dict (#2665)
- Fix: Helm Release: chart requires kubeVersion (#2653)
- Fix: Update pulumi version to 3.91.1 to pick up fixes in python codegen (#2647)
- Fix: Do not patch field managers for Patch resources (#2640)
- Revert: Normalize provider inputs and make available as outputs (#2627)
- helm.v3.ChartOpts: Add KubeVersion field that can be passed to avoid asking the kubernetes API server for the version (#2593)
- Fix for Helm Import regression (#2605)
- Improved search functionality for Helm Import (#2610)
- Fix SSA dry-run previews when a Pulumi program uses Apply on the status subresource (#2615)
- Normalize provider inputs and make available as outputs (#2598)
- Fix normalizing fields with empty objects/slices (#2576)
- helm.v3.Release: Improved cancellation support (#2579)
- Update Kubernetes client library to v0.28.2 (#2585)
- helm.v3.Release: Detect changes to local charts (#2568)
- Ignore read-only inputs in Kubernetes object metadata (#2571)
- Handle fields specified in ignoreChanges gracefully without needing a refresh when drift has occurred (#2566)
- Reintroduce switching builds to pyproject.toml; when publishing the package to PyPI both
source-based and wheel distributions are now published. For most users the installs will now favor
the wheel distribution, but users invoking pip with
--no-binary :all:
will continue having installs based on the source distribution. - Return mapping information for terraform conversions (#2457)
- feature: added skipUpdateUnreachable flag to proceed with the updates without failing (#2528)
- Revert the switch to pyproject.toml and wheel-based PyPI publishing as it impacts users that run pip with --no-binary (see #2540)
- fix: ensure CSA does not hit API Server for preview (#2522)
- Fix helm.v3.Release replace behavior (#2532)
- [sdk/python] Switch to pyproject.toml and wheel-based PyPI publishing (#2493)
- Update Kubernetes to v1.28.0 (#2526)
- fix: ensure data is not dropped when normalizing Secrets (#2514)
- [sdk/python] Drop unused pyyaml dependency (#2502)
- Fix continuous diff for Secret stringData field (#2511)
- Fix diff for CRD with status set on input (#2512)
- Gracefully handle undefined resource schemes (#2504)
- Fix diff for CRD .spec.preserveUnknownFields (#2506)
Breaking changes:
- Remove deprecated enableDryRun provider flag (#2400)
- Remove deprecated helm/v2 SDK (#2396)
- Remove deprecated enableReplaceCRD provider flag (#2402)
- Drop support for Kubernetes clusters older than v1.13 (#2414)
- Make all resource output properties required (#2422)
Other changes:
- Enable Server-side Apply by default (#2398)
- Automatically fall back to client-side preview if server-side preview fails (#2419)
- Drop support for legacy pulumi.com/initialApiVersion annotation (#2443)
- Overhaul logic for resource diffing (#2445)
- Drop usage of the "kubectl.kubernetes.io/last-applied-configuration" annotation.
- Compute preview diffs using resource inputs rather than making a dry-run API call.
- Automatically update .metadata.managedFields to work with resources that were managed with client-side apply, and later upgraded to use server-side apply.
- Fix a bug with the diff calculation so that resource drift is detected accurately after a refresh.
- Update go module version to v4 (#2466)
- Upgrade to latest helm dependency (#2474)
- Improve error handling for List resources (#2493)
- Improve deleteUnreachable workflow for unreachable clusters (#2489)
- Add experimental helmChart support to kustomize.Directory (#2471)
- [sdk/python] Fix bug with class methods for YAML transformations (#2469)
- Fix StatefulSet await logic for OnDelete update (#2473)
- Skip wait for Pods on headless Service (#2475)
- Fix provider handling of CustomResources with Patch suffix (#2438)
- Improve status message for Deployment awaiter (#2456)
- Fix regression in file/folder checking logic that caused incorrect parsing of compressed chart files (#2428)
- Update Patch resources rather than replacing (#2429)
- Add a "strict mode" configuration option (#2425)
- Handle resource change from static name to autoname under SSA (#2392)
- Fix Helm release creation when the name of the chart conflicts with the name of a folder in the current working directory (#2410)
- Remove imperative authentication and authorization resources: TokenRequest, TokenReview, LocalSubjectAccessReview, SelfSubjectReview, SelfSubjectAccessReview, SelfSubjectRulesReview, and SubjectAccessReview (#2413)
- Improve check for existing resource GVK (#2418)
- Update Kubernetes client library to v0.27.1 (#2380)
- Increase default client burst and QPS to avoid throttling (#2381)
- Add HTTP request timeout option to KubeClientSettings (#2383)
- Change destroy operation to use foreground cascading delete (#2379)
- Do not await during .get or import operations (#2373)
- Update Kubernetes to v1.27.0
authentication.k8s.io/v1beta1.SelfSubjectReview
authentication.k8s.io/v1beta1.SelfSubjectReviewPatch
certificates.k8s.io/v1alpha1.ClusterTrustBundle
certificates.k8s.io/v1alpha1.ClusterTrustBundleList
certificates.k8s.io/v1alpha1.ClusterTrustBundlePatch
networking.k8s.io/v1alpha1.IPAddress
networking.k8s.io/v1alpha1.IPAddressList
networking.k8s.io/v1alpha1.IPAddressPatch
resource.k8s.io/v1alpha2.PodSchedulingContext
resource.k8s.io/v1alpha2.PodSchedulingContextList
resource.k8s.io/v1alpha2.PodSchedulingContextPatch
resource.k8s.io/v1alpha2.ResourceClaim
resource.k8s.io/v1alpha2.ResourceClaimList
resource.k8s.io/v1alpha2.ResourceClaimPatch
resource.k8s.io/v1alpha2.ResourceClaimTemplate
resource.k8s.io/v1alpha2.ResourceClaimTemplateList
resource.k8s.io/v1alpha2.ResourceClaimTemplatePatch
resource.k8s.io/v1alpha2.ResourceClass
resource.k8s.io/v1alpha2.ResourceClassList
resource.k8s.io/v1alpha2.ResourceClassPatch
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplateList"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClassList"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClassPatch"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimList"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClass"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"
- "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"
- "kubernetes:storage.k8s.io/v1beta1:CSIStorageCapacity"
- "kubernetes:storage.k8s.io/v1beta1:CSIStorageCapacityPatch"
- "kubernetes:storage.k8s.io/v1beta1:CSIStorageCapacityList"
- "kubernetes:resource.k8s.io/v1alpha1:PodSchedulingList"
- Renamed to kubernetes:resource.k8s.io/v1alpha2:PodSchedulingContextList
- "kubernetes:resource.k8s.io/v1alpha1:PodSchedulingPatch"
- Renamed to kubernetes:resource.k8s.io/v1alpha2:PodSchedulingContextPatch
- "kubernetes:resource.k8s.io/v1alpha1:PodScheduling"
- Renamed to kubernetes:resource.k8s.io/v1alpha2:PodSchedulingContext
- Allow instantiation of kustomize.Directory with a not fully configured provider (#2347)
- Handle CSA to SSA field manager conflicts (#2354)
- Update Pulumi Java SDK to v0.8.0 (#2337)
- Remove empty keys when merging unstructured resources for diffing (#2332)
- Move
invoke_yaml_decode
into ConfigGroup for python (#2317) - Upgrade to latest helm dependency (#2318)
- Fix unencrypted secrets in the state
outputs
afterSecret.get
(#2300) - Upgrade to latest helm and k8s client dependencies (#2292)
- Fix await status for Job and Pod (#2299)
- Add
PULUMI_K8S_ENABLE_PATCH_FORCE
env var support (#2260) - Add link to resolution guide for SSA conflicts (#2265)
- Always set a field manager name to avoid conflicts in Client-Side Apply mode (#2271)
- Expose the allowNullValues boolean as an InputProperty so that it can be set in SDKs (#2255)
- Update Kubernetes support to Kubernetes v1.26.0 (#2230)
- Add allowNullValues boolean option to pass Null values through helm configs without having them scrubbed (#2089)
- Fix replacement behavior for immutable fields in SSA mode (#2235)
- For SSA conflicts, add a note to the error message about how to resolve (#2235)
- Make room for the
resource
API in Kubernetes 1.26.0 by qualifying the type of the same name in .NET code templates (#2237)
Note: Enabling SSA mode by default was causing problems for a number of users, so we decided to revert this change.
We plan to re-enable this as the default behavior in the next major (v4.0.0
) release with additional documentation
about the expected differences.
- Revert: Enable Server-Side Apply mode by default (#2216)
Important Note -- This release changes the Provider default to enable Server-Side Apply mode. This change is
backward compatible, and should not require further action from users. The enableServerSideApply
flag is
still present, so you may explicitly opt out if you run into any problems using one of the following methods:
- Set the enableServerSideApply parameter to
false
on your Provider resource. - Set the environment variable
PULUMI_K8S_ENABLE_SERVER_SIDE_APPLY="false"
- Set the stack config
pulumi config set kubernetes:enableServerSideApply false
See the how-to guide for additional information about using Server-Side Apply with Pulumi's Kubernetes provider.
New tag to fix a publishing error for the Java SDK
- Fix Helm Chart preview with unconfigured provider (C#) (#2162)
- Load default kubeconfig if not specified in provider (#2180)
- Skip computing a preview for Patch resources (#2182)
- [sdk/python] Handle CRDs with status field input (#2183)
- Upgrade Kubernetes and Helm dependencies (#2186)
- Fix yaml bug resulting in
TypeError: Cannot read properties of undefined
(#2156)
- Update Helm and Kubernetes module dependencies (#2152)
- Automatically fill in .Capabilities in Helm Charts (#2155)
- Update Kubernetes support to Kubernetes v1.25.0 (#2129)
Breaking change note -- Kubernetes v1.25 dropped a few alpha and beta fields from the API, so the following fields are no longer available in the provider SDKs:
- Type "kubernetes:batch/v1beta1:CronJobSpec" dropped property "timeZone"
- Type "kubernetes:batch/v1beta1:CronJobStatus" dropped property "lastSuccessfulTime"
- Type "kubernetes:discovery.k8s.io/v1beta1:ForZone" was dropped
- Type "kubernetes:discovery.k8s.io/v1beta1:Endpoint" dropped property "hints"
- Type "kubernetes:discovery.k8s.io/v1beta1:EndpointHints" dropped
- Type "kubernetes:policy/v1beta1:PodDisruptionBudgetStatus" dropped property "conditions"
- Update autonaming to use NewUniqueName for deterministic update plans. (#2137)
- Another fix for managed-by label in SSA mode. (#2140)
- Fix Helm charts being ignored by policy packs. (#2133)
- Fixes to allow import of helm release (#2136)
- Keep managed-by label in SSA mode if already present (#2138)
- Add chart v2 deprecation note to schema/docs (#2114)
- Add a descriptive message for an invalid Patch delete (#2111)
- Fix erroneous resourceVersion diff for CRDs managed with SSA (#2121)
- Update C# YAML GetResource implementation to compile with .NET v6 (#2122)
- Change .metadata.name to optional for all Patch resources (#2126)
- Fix field names in CRD schemas (#2128)
- Update the provider and tests to use Go 1.18. (#2073)
- Fix Helm Chart not working with Crossguard (#2057)
- Handle ignoreChanges for Server-Side Apply mode (#2074)
- Implement Server-Side Apply mode (#2029)
- Add Patch resources to all SDKs (#2043) (#2068)
- Add awaiter for service-account-token secret (#2048)
- Add Java packages overrides to schema (#2055)
- Use fully-qualified resource name for generating manifests, to avoid conflicts (#2007)
- Upgrade helm and k8s client-go module dependencies (#2008)
- Allow a user to opt-in to removing resources from Pulumi state when a cluster is unreachable (#2037)
- Fix a bug where the specified provider was not used for some operations on kustomize, helm, and yaml resources (#2005)
- The
kubernetes:helm/v2:Chart
API is deprecated in this update and will be removed in a future release. Thekubernetes:helm/v3:Chart
resource is backward compatible, so changing the import path should not cause any resource updates. - The
enableReplaceCRD
option on the Provider is deprecated in the update and will be removed in a future release. The behavior formerly enabled by this option is now default, and this option is ignored by the provider.
- Deprecate helm/v2:Chart resources (#1990)
- Don't use the last-applied-configuration annotation for CRDs (#1882)
- Upgrade pulumi/pulumi deps to v3.31.1 (#1980)
Note: The kubernetes:storage.k8s.io/v1alpha1:CSIStorageCapacity
API was removed in this update.
- Update Kubernetes support to Kubernetes v1.24.0 (#1911)
- Only add keyring default value when verification is turned on (#1961) Regression introduced in 3.18.1
- Fix the DaemonSet name on diff which prevented pulumi to replace the resource (#1951)
- Fix autonaming panic for helm release (#1953) This change also adds support for deterministic autonaming through sequence numbers to the kubernetes provider.
- Pass provider options to helm invokes in Python, Go and TS (#1919)
- Fix panic in helm release update() (#1948)
- Make ConfigMaps mutable unless marked explicitly (enabled with provider config option) (#1926)
NOTE: With this change, once
enableConfigMapMutable
is enabled, all ConfigMaps will be seen as mutable. In this mode, you can opt-in to the previous replacement behavior for a particular ConfigMap by setting itsreplaceOnChanges
resource option to[".binaryData", ".data"]
. By default, the provider will continue to treat ConfigMaps as immutable, and will replace them if thebinaryData
ordata
properties are changed.
- Bump to v3.8.0 of Helm (#1892)
- [Helm/Release][Helm/V3] Add initial support for OCI registries (#1892)
- Infer default namespace from kubeconfig when not configured via the provider (#1896)
- Fix an error handling bug in await logic (#1899)
- [Helm/Release] Add import docs (#1893)
- [Helm/Release] Remove beta warnings (#1885)
- [Helm/Release] Handle partial failure during create/update (#1880)
- [Helm/Release] Improve support for helm release operations when cluster is unreachable (#1886)
- [Helm/Release] Add examples to API reference docs and sdks (#1887)
- Fix detailed diff for server-side apply (#1873)
- Update to latest pulumi dependencies (#1888)
- Disable last-applied-configuration annotation for replaced CRDs (#1868)
- Fix Provider config diffs (#1869)
- Fix replace for named resource using server-side diff (#1870)
- Fix import for Provider using server-side diff (#1872)
- Fix panic for deletions from virtual fields in Helm Release (#1850)
- Switch Pod and Job await logic to external lib (#1856)
- Upgrade kubernetes provider module deps (#1861)
- Change await log type to cloud-ready-check lib (#1855)
- Populate inputs from live state for imports (#1846)
- Elide last-applied-configuration annotation when server-side support is enabled (#1863)
- Fix panic for deletions from virtual fields in Helm Release (#1850)
-
Helm Release: Helm Release imports support (#1818)
-
Helm Release: fix username fetch option (#1824)
-
Helm Release: Use URN name as base for autonaming, Drop warning, fix default value for keyring (#1826)
-
Helm Release: Add support for loading values from yaml files (#1828)
-
Fix CRD upgrades (#1819)
- Add support for k8s v1.23.0. (#1681)
Breaking change note:
#1817 removed the deprecated providers/Provider
resource definition from the Go SDK. Following this change, use the Provider resource at
github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes
instead.
- Helm Release: Make RepositoryOpts optional (#1806)
- Helm Release: Support local charts (#1809)
- Update pulumi dependencies v3.19.0 (#1816)
- [go/sdk] Remove deprecated providers/Provider resource (#1817)
- Remove unused helm ReleaseType type (#1805)
- Fix Helm Release Panic "Helm uninstall returned information" (#1807)
- Add await support for networking.k8s.io/v1 variant of ingress (#1795)
- Schematize overlay types (#1793)
- [sdk/python] Add ready attribute to await Helm charts (#1782)
- [sdk/go] Add ready attribute to await Helm charts (#1784)
- [sdk/dotnet] Add ready attribute to await Helm charts (#1785)
- [sdk/python] Update CustomResource python implementation to pickup snake-case updates (#1786)
- Update pulumi dependencies v3.16.0 (#1790)
- Add env variable lookup for k8s client settings (#1777)
- Fix diff logic for CRD kinds with the same name as a built-in (#1779)
- [sdk/python] Relax PyYaml dependency to allow upgrade to PyYaml 6.0 (#1768)
- [go/sdk] Add missing types for deprecated Provider (#1771)
- Fix error for helm.Release previews with computed values (#1760)
- Don't require values for helm.Release (#1761)
Breaking change note:
#1751 moved the Helm Release (beta) Provider options into a
complex type called helmReleaseSettings
. Following this change, you can set these options in the following ways:
-
As arguments to a first-class Provider
new k8s.Provider("test", { helmReleaseSettings: { driver: "secret" } });
-
Stack configuration for the default Provider
pulumi config set --path kubernetes:helmReleaseSettings.driver "secret"
-
As environment variables
EXPORT PULUMI_K8S_HELM_DRIVER="secret"
- [sdk/dotnet] Fix creation of CustomResources (#1741)
- Always override namespace for helm release operations (#1747)
- Add k8s client tuning settings to Provider (#1748)
- Nest helm.Release Provider settings (#1751)
- Change await logic client to use target apiVersion on updates (#1758)
- Use helm release's namespace on templates where namespace is left unspecified (#1733)
- Upgrade Helm dependency to v3.7.0 (#1742)
- Helm Release: Await deletion if skipAwait is unset or atomic is specific (#1742)
- Fix handling of charts with empty manifests (#1717)
- Use existing helm template logic to populate manifests instead of relying on
dry-run
support (#1718)
- Don't replace PVC on .spec.resources.requests or .limits change. (#1705)
- NOTE: User's will now need to use the
replaceOnChanges
resource option for PVCs if modifying requests or limits to trigger replacement
- NOTE: User's will now need to use the
- Add initial support for a Helm release resource - `kubernetes:helm.sh/v3:Release. Currently available in Beta (#1677)
- [sdk/go] Re-add deprecated Provider file (#1687)
- Fix environment variable name in disable Helm hook warnings message (#1683)
- [sdk/python] Fix wait for metadata in
yaml._parse_yaml_object
. (#1675) - Fix diff logic for server-side apply mode (#1679)
- Add option to disable Helm hook warnings (#1682)
- For renderToYamlDirectory, treat an empty directory as unset (#1678)
The following breaking changes are part of the Kubernetes v1.22 update:
-
The alpha
EphemeralContainers
kind has been removed -
[.NET SDK]
Networking.V1Beta1.IngressClassParametersReferenceArgs
->Core.V1.TypedLocalObjectReferenceArgs
-
Update Helm and client-go deps (#1662)
-
Add support for k8s v1.22.0. (#1551)
- Use shared informer for await logic for all resources (#1647)
- Update pulumi dependencies v3.5.1 (#1623)
- Skip cluster connectivity check in yamlRenderMode (#1629)
- Handle different namespaces for server-side diff (#1631)
- Handle auto-named namespaces for server-side diff (#1633)
- Revert Fix hanging updates for deployment await logic (#1596)
- Use shared informer for await logic for deployments (#1639)
- Revert Fix hanging updates for deployment await logic (#1596)
- Add skipAwait option to helm.v3 SDKs. (#1603)
- Add skipAwait option to YAML SDKs. (#1610)
- [sdk/go]
ConfigGroup
now respects explicit provider instances when parsing YAML. (#1601) - Fix hanging updates for deployment await logic (#1596)
- Fix auto-naming bug for computed names (#1618)
- [sdk/python] Revert pulumi dependency to <4.0.0. (#1619)
- [sdk/dotnet] Unpin System.Collections.Immutable dependency (#1621)
- [sdk/python] Fix YAML regression by pinning pulumi dependency to <3.4.0. (#1605)
- Automatically mark Secret data as Pulumi secrets. (#1577)
- Update pulumi dependency (#1588)
- [codegen] Automatically encrypt secret input parameters (pulumi/pulumi#7128)
- [sdk/python] Nondeterministic import ordering fix from (pulumi/pulumi#7126)
- Allow opting out of CRD rendering for Helm v3 by specifying
SkipCRDRendering
argument to Helm charts. (#1572) - Add replaceUnready annotation for Jobs. (#1575)
- Read live Job state for replaceUnready check. (#1578)
- Fix diff panic for malformed kubeconfig. (#1581)
- Update pulumi dependencies to fix Python regression from 3.1.1 (#1573)
- Update Helm to v3.5.4 and client-go to v0.20.4 (#1536)
- In Python helmv2 and helmv3, and Node.js helmv3, no longer pass
Chart
resource options to child resources explicitly. (#1539)
-
Depend on Pulumi 3.0, which includes improvements to Python resource arguments and key translation, Go SDK performance, Node SDK performance, general availability of Automation API, and more.
-
Update pulumi dependency (#1521)
- [sdk/go] Fix Go resource registrations (pulumi/pulumi#6641)
- [sdk/python] Support
<Resource>Args
classes (pulumi/pulumi#6525)
-
Do not return an ID when previewing the creation of a resource. (#1526)
- Fix refresh for render-yaml resources (#1523)
- Behavior change: Error on refresh for an unreachable cluster. (#1522)
- Ensure using
PULUMI_KUBERNETES_MANAGED_BY_LABEL
doesn't cause diffs on further stack updates (#1508) - [sdk/ts] Update CustomResource to match current codegen (#1510)
- Fix bug where rendering manifests results in files being overwritten by subsequent resources with the same kind and name, but different namespace (#1429)
- Update pulumi dependency to fix python Resource.get() functions (#1480)
- Upgrade to Go1.16 (#1486)
- Adding arm64 plugin builds (#1490)
- Fix bug preventing helm chart being located in bitnami repo (#1491)
- Postpone the removal of admissionregistration/v1beta1, which has been retargeted at 1.22 (#1474)
- Change k8s API removals from error to warning (#1475)
- Skip Helm test hook resources by default (#1467)
- Ensure no panic when a kubernetes provider is used with an incompatible resource type (#1469)
- Allow users to set
PULUMI_KUBERNETES_MANAGED_BY_LABEL
environment variable to controlapp.kubernetes.io/managed-by
label (#1471)
Note: This release fixes a bug with the Helm v3 SDK that omitted any chart resources that included a hook annotation. If you have existing charts deployed with the v3 SDK that include hook resources, the next update will create these resources.
- [Go SDK] Fix bug with v1/List in YAML parsing (#1457)
- Fix bug rendering Helm v3 resources that include hooks (#1459)
- Print warning for Helm resources using unsupported hooks (#1460)
- Update pulumi dependency to remove unused Go types (#1450)
- Expand allowed Python pyyaml dependency versions (#1435)
- Add enum for kubernetes.core.v1.Service.Spec.Type (#1408)
- Update pulumi deps to v2.15.5 (#1402)
- Fix Go resource Input/Output methods (#1406)
- Add support for k8s v1.20.0. (#1330)
- Replace workload resources if any field in
.spec.selector
changes. (#1387) - Update pulumi deps to v2.15.0 (#1393)
- Add package/module registration for NodeJS and Python (#1394)
- Fixed a gRPC error for larger Helm charts in the .NET SDK #4224
- Update pulumi deps to v2.14.0 (#1385)
- Add support for previewing Create and Update operations for API servers that support dry-run (#1355)
- Fix panic introduced in #1355 (#1368)
- (NodeJS) Add ready attribute to await Helm charts (#1364)
- Update Helm to v3.4.0 and client-go to v1.19.2 (#1360)
- Update Helm to v3.4.1 and client-go to v1.19.3 (#1365)
- Fix panic when provider is given kubeconfig as an object instead of string (#1373)
- Fix concurrency issue in Helm + .NET SDK #1311 and #1374
- Revert Helm v2 deprecation warnings (#1352)
Helm v2 support is EOL, and will no longer be supported upstream
as of next month. Furthermore, the stable/incubator chart repos will likely
stop working after November 13, 2020. Deprecation warnings have
been added for any usage of Pulumi's helm.v2
API, and this API will be removed at a future date. Our helm.v3
API is
backward compatible, so you should be able to update without disruption to existing resources.
- Set plugin version for Go SDK invoke calls (#1325)
- Python: Fix generated examples and docs to prefer input/output classes (#1346)
- Update Helm v3 mod to v3.3.2 (#1326)
- Update Helm v3 mod to v3.3.3 (#1328)
- Change error to warning if internal autoname annotation is set (#1337)
- Deprecate Helm v2 SDKs (#1344)
- Fix Python type hints for lists (#1313)
- Fix Python type hints for integers (#1317)
- Fix Helm v3 default namespace handling (#1323)
- Update Helm v3 mod to v3.3.1 (#1320)
Note: There is a minor breaking change in the .NET SDK for Helm v3. As part of the switch to using native Helm libraries in #1291, the Helm.V3.Chart class no longer inherits from the ChartBase class. Most users should not be affected by this change.
- Upgrade version of pyyaml to fix a security vulnerability (#1230)
- Fix Helm api-versions handling in all SDKs. (#1307)
- Update .NET Helm v3 to use native client. (#1291)
- Update Go Helm v3 to use native client. (#1296)
- Python: Allow type annotations on transformation functions. (#1298)
- Fix regression of .get methods in NodeJS SDK. (#1285)
- Upgrade to Pulumi v2.9.0, which adds type annotations and input/output classes to Python (#1276)
- Switch Helm v3 logic to use native library. (#1263)
- Bump python requests version dependency. (#1274)
- Update NodeJS Helm v3 to use native client. (#1279)
- [sdk/nodejs] Remove unneccessary constructor overloads. (#1286)
- Add support for k8s v1.19.0. (#996)
- Handle kubeconfig contents or path in provider. (#1255)
- Add type annotations to Python SDK for API Extensions, Helm, Kustomize, and YAML. (#1259)
- Update k8s package deps to v0.18.8. (#1265)
- Move back to upstream json-patch module. (#1266)
- Rename Python's yaml.ConfigFile file_id parameter to file. (#1248)
- Remove the ComponentStatus resource type. (#1234)
- Fix server-side diff when immutable fields change. (#988)
- Update json-patch mod to fix hangs on pulumi update. (#1223)
- Handle networking/v1beta1 Ingress resources. (#1221)
- Add NodeJS usage examples for Helm, Kustomize, and YAML resources. (#1205)
- Add Python usage examples for Helm, Kustomize, and YAML resources. (#1209)
- Add v3 Helm package for Go SDK. (#1211)
- Add Go usage examples for Helm, Kustomize, and YAML resources. (#1212)
- Add yaml.ConfigGroup to Python SDK. (#1217)
- Add C# usage examples for Helm, Kustomize, and YAML resources. (#1213)
- Fix error parsing Helm version (#1170)
- Fix prometheus-operator test to wait for the CRD to be ready before use (#1172)
- Fix suppress deprecation warnings flag (#1189)
- Set additionalSecretOutputs on Secret data fields (#1194)
- Set supported environment variables in SDK Provider classes (#1166)
- Python SDK updated to align with other Pulumi Python SDKs. (#1160)
- Add support for Kustomize. (#1178)
- Implement GetSchema to enable example and import code generation. (#1181)
- Only show deprecation messages when new API versions exist in current cluster version (#1182)
- Update resource deprecation/removal warnings. (#1162)
- Fix regression in TypeScript YAML SDK (#1157)
- NodeJS SDK updated to align with other Pulumi NodeJS SDKs. (#1151)
- .NET SDK updated to align with other Pulumi .NET SDKs. (#1132)
- Deprecated resources are now marked as
Obsolete
. - Many classes are moved to new locations on disk while preserving the public namespaces and API.
- Several unused argument/output classes were removed without any impact on resources (e.g.
DeploymentRollbackArgs
). - Fixed the type of some properties in
JSONSchemaPropsArgs
(there's no need to have 2nd-level inputs there):InputList<InputJson>
->InputList<JsonElement>
InputMap<Union<TArgs, InputList<string>>>
->InputMap<Union<TArgs, ImmutableArray<string>>>
- Deprecated resources are now marked as
- Fix incorrect schema consts for apiVersion and kind (#1153)
- 2.2.1 SDK release process failed, so pushing a new tag.
- Update deprecated/removed resource warnings. (#1135)
- Update to client-go 1.18. (#1136)
- Don't replace Service on .spec.type change. (#1139)
- Fix regex in python
include-crds
logic (#1145)
- Support helm v3
include-crds
argument. (#1102) - Bump python requests version dependency. (#1121)
- Add apiextensions.CustomResource to Go SDK. (#1125)
- Python and .NET packages failed to publish for 2.1.0, so bumping release version.
- fix(customresources): use a 3-way merge patch instead of strategic merge. (#1095)
- Fix required input props in Go SDK. (#1090)
- Update Go SDK using latest codegen packages. (#1089)
- Fix schema type for Fields and RawExtension. (#1086)
- Fix error parsing YAML in python 3.8 (#1079)
- Fix HELM_HOME handling for Helm v3. (#1076)
- Sort fetched helm charts into alphabetical order. (#1064)
- Update the Python
Provider
class to use parameter naming consistent with other resources. (#1039). - Change URN for apiregistration resources. (#1021).
- Automatically populate type aliases and additional secret outputs in the .NET SDK. (#1026).
- Update to Pulumi NuGet 1.12.1 and .NET Core 3.1. (#1030).
- Change URN for apiregistration resources. (#1021).
- Replace PersistentVolume if volume source changes. (#1015).
- Fix bool Python provider opts. (#1027).
- Replace Daemonset if .spec.selector changes. (#1008).
- Display error when pulumi plugin install fails. (#1010).
- Upgrade pulumi/pulumi dep to 1.11.0 (fixes #984). (#1005).
- Auto-generate aliases for all resource kinds. (#991).
- Fix aliases for several resource kinds. (#990).
- Don't require valid cluster for YAML render mode. (#997).
- Fix .NET resources with empty arguments. (#983).
- Fix panic condition in Pod await logic. (#998).
- .NET SDK supports resources to work with YAML Kubernetes files and Helm charts. (#980).
- Change invoke call to always use latest version. (#987).
- Optionally render YAML for k8s resources. (#936).
- Specify provider version for invokes. (#982).
- Update nodejs SDK to use optional chaining in constructor. (#959).
- Automatically set Secret inputs as pulumi.secret. (#961).
- Create helm.v3 alias. (#970).
- Handle invalid kubeconfig context. (#960).
- Improve namespaced Kind check. (#947).
- Add helm template
apiVersions
flag. (#894) - Move YAML decode logic into provider and improve handling of default namespaces for Helm charts. (https://github.com //pull/952).
- Revert invoke changes. (#941).
- Move YAML decode logic into provider. (#925).
- Improve handling of default namespaces for Helm charts. (#934).
- Fix panic condition in Ingress await logic. (#928).
- Fix deprecation warnings and docs. (#929).
- Fix projection of array-valued output properties in .NET. (#931)
- Fix deprecation warnings and docs. (#918 and https://github.com //pull/921).
The discovery.v1alpha1.EndpointSlice and discovery.v1alpha1.EndpointSliceList APIs were removed in k8s 1.17, and no longer appear in the Pulumi Kubernetes SDKs. These resources can now be found at discovery.v1beta1.EndpointSlice and discovery.v1beta1.EndpointSliceList.
- Add support for Kubernetes v1.17.0 (#706)
- Use HELM_HOME as default if set. (#855).
- Use
namespace
provided byKUBECONFIG
, if it is not explicitly set in the provider (#903).
- Add
Provider
for .NET. (#897)
- Add support for .NET. (#885)
- Add support for helm 3 CLI tool. (#882).
- Increase maxBuffer for helm template exec. (#864).
- Add StreamInvoke RPC call, along with stream invoke implementations for kubernetes:kubernetes:watch, kubernetes:kubernetes:list, and kubernetes:kubernetes:logs. (#858, #873, #876).
- Correctly merge provided opts for k8s resources. (#850).
- Fix a bug that causes helm crash when referencing 'scoped packages' that start with '@'. (#846)
- Stop using initialApiVersion annotation. (#837).
- Cache the parsed OpenAPI schema to improve performance. (#836).
- Cache the OpenAPI schema to improve performance. (#833).
- Aggregate error messages from Pods on Job Read. (#831).
- Improve interactive status for Jobs. (#832).
- Add logic to check for Job readiness. (#633).
- Automatically mark Secret data and stringData as secret. (#803).
- Auto-alias resource apiVersions. (#798).
- Provide detailed error for removed apiVersions. (#809).
- Add support for Kubernetes v1.16.0 (#669)
- Implement customTimeout for resource deletion. (#802).
- Increase default readiness timeouts to 10 mins. (#721).
- Add suppressDeprecationWarnings flag. (#808).
- Warn for invalid usage of Helm repo parameter. (#805).
- Add PodAggregator for use by resource awaiters. (#785).
- Warn for deprecated apiVersions. (#779).
- Fix name collisions in the Charts/YAML Python packages (#771).
- Implement
{ConfigFile, ConfigGroup, Chart}#get_resource
(#771). - Upgrade Pulumi dependency to 1.0.0.
- Do not leak unencrypted secret values into the state file (fixes #734).
- Refactor and update the docs of the repo for 1.0. (#736).
- Document await logic in the SDKs. (#711).
- Document await timeouts and how to override. (#718).
- Improve CustomResource for Python SDK. (#700).
- Clean up Python SDK get methods. (#740).
- Remove undocumented kubectl replace invoke method. (#738).
- Don't populate
.status
in input types (#635). - Allow a user to pass CustomTimeouts as part of ResourceOptions (fixes #672)
- Don't panic when an Asset or an Archive are passed into a resource definition (#751).
- Fix error messages for resources with default namespace. (#749).
- Correctly compute version number for plugin to send with registration requests (fixes #732).
- Add .get() to Python SDK. (#435).
- Align YAML parsing with core Kubernetes supported YAML subset. (#690).
- Handle string values in the equalNumbers function. (#691).
- Properly detect readiness for Deployment scaled to 0. (#688).
- Fix a bug that caused crashes when empty array values were added to resource inputs. (#696)
- Fall back to client-side diff if server-side diff fails. (#685).
- Fix namespace arg for Python Helm SDK (#670).
- Detect namespace diff for first-class providers. (#674).
- Fix values arg for Python Helm SDK (#678).
- Fix Python Helm LocalChartOpts to inherit from BaseChartOpts (#681).
This release reverts the default diff behavior back to the pre-0.25.3
behavior. A new flag has
been added to the provider options called enableDryRun
, that can be used to opt in to the new
diff behavior. This will eventually become the default behavior after further testing to ensure
that this change is not disruptive.
- Disable dryRun diff behavior by default. (#686)
- Improve error messages for StatefulSet. (#673)
- Properly reference override values in Python Helm SDK (#676).
- Handle Output values in diffs. (#682).
- Allow
yaml.ConfigGroup
to take URLs as argument (#638). - Return useful errors when we fail to fetch URL YAML (#638).
- Use JSON_SCHEMA when parsing Kubernetes YAML, to conform with the expectations of the Kubernetes core resource types. (#638).
- Don't render emoji on Windows. (#634)
- Emit a useful error message (rather than a useless one) if we fail to parse the YAML data in
kubernetes:config:kubeconfig
(#636). - Provide useful contexts in provider errors, particularly those that originate from the API server (#636).
- Expose all Kubernetes types through the SDK (#637).
- Use
opts
instead of__opts__
andresource_name
instead of__name__
in Python SDK (#639). - Properly detect failed Deployment on rollout. (#646 and #657).
- Use dry-run support if available when diffing the actual and desired state of a resource (#649)
- Fix panic when
.metadata.label
is mistyped (#655). - Fix unexpected diffs when running against an API server that does not support dry-run. (#658)
- The Kubernetes provider can now communicate detailed information about the difference between a resource's desired and actual state during a Pulumi update. (#618).
- Refactor Pod await logic for easier testing and maintenance (#590).
- Update to client-go v12.0.0 (#621).
- Fallback to JSON merge if strategic merge fails (#622).
- Fix Helm Chart resource by passing
resourcePrefix
to the yaml template resources (#625).
- Unify diff behavior between
Diff
andUpdate
. This should result in better detection of state drift as well as behavior that is more consistent with respect tokubectl
. (#604) - The Kubernetes provider now supports the internal features necessary for the Pulumi engine to detect diffs between the actual and desired state of a resource after a
pulumi refresh
(#477). - The Kubernetes provider now sets the
"kubectl.kubernetes.io/last-applied-configuration"
annotation to the last deployed configuration for a resource. This enables better interoperability withkubectl
.
- Add more props that force replacement of Pods (#613)
- Add support for Kubernetes v1.15.0 (#557)
- Enable multiple instances of Helm charts per stack (#599).
- Enable multiple instances of YAML manifests per stack (#594).
- None
BREAKING: This release changes the behavior of the provider namespace
flag introduced
in 0.23.0
. Previously, this flag was treated as an override, which ignored namespace
values set directly on resources. Now, the flag is a default, and will only set the
namespace if one is not already set. If you have created resources using a provider
with the namespace
flag set, this change may cause these resources to be recreated
on the next update.
- BREAKING: Change the recently added
transformations
callback in Python to match JavaScript API (#575) - BREAKING: Remove
getInputs
from Kubernetes resource implementations. (#580) - BREAKING: Change provider namespace from override to default. (#585)
- Enable configuring
ResourceOptions
viatransformations
(#575). - Changing k8s cluster config now correctly causes dependent resources to be replaced (#577).
- Add user-defined type guard
isInstance
to all KubernetesCustomResource
implementations (#582).
- Fix panics during preview when
metadata
is a computed value (#572)
- None
- Fix namespaceable check for diff (#554)
This release fixes a longstanding issue with the provider namespace flag. Previously, this flag was erroneously ignored, but will now cause any resources using this provider to be created in the specified namespace. This may cause resources to be recreated! Unset the namespace parameter to avoid this behavior. Also note that this parameter takes precedence over any namespace defined on the underlying resource.
The Python SDK now supports YAML manifests and Helm charts, including CustomResourceDefinitions
and CustomResources
!
This release improves handling for CustomResources (CRs) and CustomResourceDefinitions (CRDs).
CRs without a matching CRD will now be considered deleted during pulumi refresh
, and pulumi destroy
will not fail to delete a CR if the related CRD is missing.
See #530 for details.
- None
- Improve error handling for "no match found" errors (#530)
- None
- Fix Deployment await logic for old API schema (#523)
- Replace PodDisruptionBudget if spec changes (#527)
- Add support for Kubernetes v1.14.0 (#371)
- Add CustomResource to Python SDK (#543)
- None
- None
- Split up nodejs SDK into multiple files (#480)
- Check for unexpected RPC ID and return an error (#475)
- Fix an issue where the Python
pulumi_kubernetes
package was depending on an olderpulumi
package. - Fix YAML parsing for computed namespaces (#483)
Updating to v0.17.0 version of @pulumi/pulumi
. This is an update that will not play nicely
in side-by-side applications that pull in prior versions of this package.
See https://github.com/pulumi/pulumi/commit/7f5e089f043a70c02f7e03600d6404ff0e27cc9d for more details.
As such, we are rev'ing the minor version of the package from 0.16 to 0.17. Recent version of pulumi
will now detect, and warn, if different versions of @pulumi/pulumi
are loaded into the same application. If you encounter this warning, it is recommended you move to versions of the @pulumi/...
packages that are compatible. i.e. keep everything on 0.16.x until you are ready to move everything to 0.17.x.
- None
- Allow the default timeout for awaiters to be overridden (#457)
- Properly handle computed values in labels and annotations (#461)
- None
- None
- None
- Allow awaiters to be skipped by setting an annotation (#417)
- Set managed-by: pulumi label on all created resources (#418)
- Clean up docstrings for Helm package (#396)
- Support explicit
deleteBeforeReplace
(pulumi/pulumi#2415)
- Consider PVC events in Deployment await logic (#355)
- Improve info message for Ingress with default path (#388)
- Autogenerate Python casing table from OpenAPI spec (#387)
- Use
node-fetch
rather thangot
to support Node 6 (#390) - Prevent orphaned resources on cancellation during delete (#368)
- Handle buggy case for headless Service with no port (#366)
- Implement incremental status updates for
StatefulSet
(#307) - Allow the
@pulumi/kubernetes
YAML API to understand arbitrary URLs (#328) - Add support for
.get
on CustomResources (#329) - Add support for
.get
for first-class providers (#340)
- Fix Ingress await logic for ExternalName Services (#320)
- Fix replacement logic for Job (#324 and #324)
- Fix Cluster/RoleBinding replace semantics (#337)
- Improve typing for
apiVersion
andkind
(#341)
- Allow Helm Charts to have
pulumi.Input
in theirvalues
(#241)
- Retry REST calls to Kubernetes if they fail, greatly improving resiliance against resorce operation ordering problems.
- Add support for creating CRDs and CRs in the same app (#271, #280)
- Add incremental await for logic for
Ingress
(#283) - Allow users to specify a Chart's source any way they can do it from the CLI (#284)
- "Fix" "bug" that cases Pulumi to crash if there is a duplicate key in a YAML template, to conform with Helm's behavior (#289)
- Emit better error when the API server is unreachable (#291)
- Add support for Kubernetes v0.12.* (#293)
- Fix bug that spuriously requires
.metadata.name
to be specified in Kubernetes list types (e.g.,v1/List
) (#294, #296) - Add Kubernetes v0.13.* support (#306)
- Improve error message when
Service
fails to initialized (#309) - Fix bug that causes us to erroneously report
Pod
's owner (#311)