forked from kubernetes-sigs/controller-runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] main from kubernetes-sigs:main #10
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
Open
pull
wants to merge
210
commits into
AKJUS:main
Choose a base branch
from
kubernetes-sigs:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The fake client currently has a number of time of check time of use races, where it fetches an object to determine what to do in a mutating operation. The problem is that the object might change in between fetching it and doing the mutating operation. Most notably, this happens when: * Patching is done in parallel. Only one of the patches will succeed, the other ones will fail with a conflict * Updates of objects that allow unconditional updates: All updates will succeed, but not all of them will increment the resource version (i.E dirty writes for the RV) * An update for an object that allows createOnUpdate races with a create or delete * A DeleteAllOf call races with Delete calls * A scale update races with a normal update This change: * Adds tests for all of these cases * Fixes them by adding a lock around the write operations, including their read part, if any
Signed-off-by: Stefan Büringer [email protected]
🐛 Fakeclient: Fix TOCTOU races
🌱 Bump to k8s.io/* v0.32.0-alpha.2
…etSyncReconcier-tosecretSyncReconciler 🐛 Rename SecretSyncReconcier to SecretSyncReconciler (typo)
This commit fixes a minor typo in IndexField docs.
📖 (fix): typo in IndexField method docs
Contrary to everything else in controller-runtime, we expect `source.Start` to be non-blocking. If someone implements a custom source and gets this wrong, the resulting behavior is that the binary starts successfully, but no reconciliation happens which is extremely difficult to understand and debug. This change makes us use the `CacheSyncTimeout` not only for the sources `WaitForSync` but also for its `Start`. It is worth noting that the current design of both requiring `Start` to not block and `WaitForSync` to block is very confusing. It likely came to be because we basicaly require two distinct contexsts in `Start`, one to indicate the lifetime of the `Source` and one to indicate the `Start` timeout. To overall simplify and improve the code, the change also parallelizes the `Start` of the sources.
Bumps the all-github-actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [actions/setup-go](https://github.com/actions/setup-go). Updates `actions/checkout` from 4.2.1 to 4.2.2 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@eef6144...11bd719) Updates `actions/setup-go` from 5.0.2 to 5.1.0 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@0a12ed9...41dfa10) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-github-actions - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-github-actions ... Signed-off-by: dependabot[bot] <[email protected]>
…ns/all-github-actions-240149f75d 🌱 Bump the all-github-actions group with 2 updates
Signed-off-by: Stefan Büringer [email protected]
🌱 Bump to k8s.io/* v0.32.0-alpha.3
* clarify comments of GenerationChangedPredicate * fix: update comments of GenerationChangedPredicate about cr generation
Bumps the all-github-actions group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release). Updates `softprops/action-gh-release` from 2.0.8 to 2.0.9 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@c062e08...e7a8f85) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-github-actions ... Signed-off-by: dependabot[bot] <[email protected]>
…ns/all-github-actions-35641a6c8a 🌱 Bump softprops/action-gh-release from 2.0.8 to 2.0.9 in the all-github-actions group
Review correction
Controllers are long-running processes, and deduplication, as implemented, increases memory use. With this change, duplicate warnings will appear in the log by default. However, this is safe, because Kubernetes rotates container logs by default. If a specific controller sees many duplicate warnings, it can configure the handler to deduplicate them.
…by-default⚠️ Do not deduplicate warnings by default
✨ Add custom path option for webhooks
…tch) (#2982) * Fix custom defaulter from deleting unknown fields * Use a zero-change patch to do find scheme caused fields removal. * Add `DefaulterPreserveUnknownFields` An option stops the defaulter from pruning the fields that are not recognized in the local scheme. * Make it opt-out, `DefaulterRemoveUnknownFields` * Review Remarks * Review Remarks * Rename DefaulterRemoveUnknownFields to DefaulterRemoveUnknownOrOmitableFields --------- Co-authored-by: Aldo Culquicondor <[email protected]>
🐛 Error when source.Start() never returns
Addresses #2997 (comment), followup to #2997
🌱 Source.Start(): Use errgroup without context
Signed-off-by: Stefan Büringer [email protected]
🌱 Bump to k8s.io/* v0.32.0-beta.0
Addresses the comments on #2997
🌱 Fixups to error when source.Start never returns
Bumps the all-github-actions group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release). Updates `softprops/action-gh-release` from 2.0.9 to 2.1.0 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@e7a8f85...01570a1) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-github-actions ... Signed-off-by: dependabot[bot] <[email protected]>
🌱 Clarify that controller-runtime is not a kubebuilder subproject
✨ [Warm Replicas] Extract startWatches into helper method.
Signed-off-by: Troy Connor <[email protected]>
🌱Move to v0.33 k8s deps
Signed-off-by: Stefan Büringer [email protected]
🐛 fix log verbose info lost
✨ Allow panic as log level
🌱 Bump setup-envtest to k8s.io/apimachinery v0.33.0
#3195) * fix: prevent list accumulation in multi-namespace cache implementation Signed-off-by: Xuhui zhang <[email protected]> * Add test Signed-off-by: Xuhui zhang <[email protected]> --------- Signed-off-by: Xuhui zhang <[email protected]>
📖 Document pitfalls of CreateOrUpdate and CreateOrPatch
Signed-off-by: Troy Connor <[email protected]>
🐛Use k8s.io/apimachinery/pkg/util/json to unmarshal in fakeclient
Signed-off-by: dongjiang <[email protected]>
🌱ci: Update golangci-lint to v2.1.6 and adjust configuration
Bumps the all-github-actions group with 3 updates in the / directory: [actions/setup-go](https://github.com/actions/setup-go), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release). Updates `actions/setup-go` from 5.3.0 to 5.5.0 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@f111f33...d35c59a) Updates `actions/upload-artifact` from 4.6.1 to 4.6.2 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@4cec3d8...ea165f8) Updates `softprops/action-gh-release` from 2.2.1 to 2.2.2 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@c95fe14...da05d55) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: 5.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-github-actions - dependency-name: actions/upload-artifact dependency-version: 4.6.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-github-actions - dependency-name: softprops/action-gh-release dependency-version: 2.2.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-github-actions ... Signed-off-by: dependabot[bot] <[email protected]>
…ns/all-github-actions-1f2e4f4014 🌱 Bump the all-github-actions group across 1 directory with 3 updates
Signed-off-by: Troy Connor <[email protected]>
…bhooks 🐛Return warnings on webhook response
Signed-off-by: Troy Connor <[email protected]>
📖 Update README with compatability matrix
This change removes supports for objects that have type or object meta defined as pointer. This is because the `FieldManagedObjectTracker` needed for support of SSA in the fakeclient can not support it, as it has a lot of places where it unconditionally accesses these fields using reflect, which will cause panics.
…ptions ✨ Add UnsafeDisableDeepCopy to GetOptions
⚠️ Fakeclient: Remove support for objects with pointer meta
The fakeclient currently differs from the liveclient in that if a structured object is created that has typemeta set, it will retain that. In contrast to that, the liveclient always strips it. This change makes the fakeclient strip it just like the live client.
⚠️ Fakeclient: Clear typemeta for structured
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )