-
Notifications
You must be signed in to change notification settings - Fork 116
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
Add clusterIdentifier
configuration to control provider lifecycle
#3068
Conversation
Does the PR have any schema changes?Looking good! No breaking changes found. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3068 +/- ##
==========================================
- Coverage 36.58% 36.57% -0.02%
==========================================
Files 71 71
Lines 9263 9275 +12
==========================================
+ Hits 3389 3392 +3
- Misses 5535 5543 +8
- Partials 339 340 +1 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, have 2 points:
- there's already some tests for DiffConfig in
provider_diffconfig_test.go
; can we add a section to outline the behavior of the clusteridentifer? - The term
clusterIdentifier
seems a bit long and imprecise, I would advocate forclusterKey
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM but we should do some manual testing for good measure.
…mpe/2745-clusterid
### Added - `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 with `terminationMessagePath`. 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) ### Fixed - 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 of `WaitForFirstConsumer` will no longer hang indefinitely. (#3130) - [java] Fixed an issue where child resources could not be registered by Chart v4. (#3119)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@pulumi/kubernetes](https://pulumi.com) ([source](https://togithub.com/pulumi/pulumi-kubernetes)) | dependencies | minor | [`4.15.0` -> `4.16.0`](https://renovatebot.com/diffs/npm/@pulumi%2fkubernetes/4.15.0/4.16.0) | --- ### Release Notes <details> <summary>pulumi/pulumi-kubernetes (@​pulumi/kubernetes)</summary> ### [`v4.16.0`](https://togithub.com/pulumi/pulumi-kubernetes/blob/HEAD/CHANGELOG.md#4160-August-7-2024) [Compare Source](https://togithub.com/pulumi/pulumi-kubernetes/compare/v4.15.0...v4.16.0) ##### Added - `clusterIdentifier` configuration can now be used to manually control the replacement behavior of a provider resourc[https://github.com/pulumi/pulumi-kubernetes/pull/3068](https://togithub.com/pulumi/pulumi-kubernetes/pull/3068)ull/3068) - Pod errors now include the pod's last termination state, as well as the pod's termination message if availabl[https://github.com/pulumi/pulumi-kubernetes/pull/3091](https://togithub.com/pulumi/pulumi-kubernetes/pull/3091)ull/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 with `terminationMessagePath`. Use `terminationMessagePolicy: FallbackToLogsOnError` to use the pod's logs as its termination message. - Documentation is now generated for all languages supported by overlay types. [https://github.com/pulumi/pulumi-kubernetes/pull/3107](https://togithub.com/pulumi/pulumi-kubernetes/pull/3107)3107) ##### Fixed - Updated logic to accurately detect if a resource is a Patch variant. ([https://github.com/pulumi/pulumi-kubernetes/pull/3102](https://togithub.com/pulumi/pulumi-kubernetes/pull/3102)) - Added Java as a supported language for `CustomResource` overlays. ([https://github.com/pulumi/pulumi-kubernetes/pull/3120](https://togithub.com/pulumi/pulumi-kubernetes/pull/3120)) - Status messages reported during updates are now more accurately scoped to the affected resourc[https://github.com/pulumi/pulumi-kubernetes/pull/3128](https://togithub.com/pulumi/pulumi-kubernetes/pull/3128)3128) - `PersistentVolumeClaims` with a bind mode of `WaitForFirstConsumer` will no longer hang indefinitel[https://github.com/pulumi/pulumi-kubernetes/pull/3130](https://togithub.com/pulumi/pulumi-kubernetes/pull/3130)3130) - \[java] Fixed an issue where child resources could not be registered by Chart v4. [https://github.com/pulumi/pulumi-kubernetes/pull/3119](https://togithub.com/pulumi/pulumi-kubernetes/pull/3119)9) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMS4zIiwidXBkYXRlZEluVmVyIjoiMzguMjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9taW5vciJdfQ==--> Co-authored-by: lumiere-bot[bot] <98047013+lumiere-bot[bot]@users.noreply.github.com>
This adds a new
clusterIdentifier
provider configuration to control replacement behavior.If this config has been previously set, then we will only replace the provider when
clusterIdentifier
changes. Additionally, changes to other properties likekubeconfig
which currently trigger replacements will now only be updates.An E2E test is included along with unit tests. The units use txtar to more conveniently express before/after state in YAML -- a sort of middle ground between massive table tests and full-blown integration tests.
Fixes #2745.