kubernetes-sigs/controller-runtime (sigs.k8s.io/controller-runtime)
### [`v0.16.2`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.2)
[Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.1...v0.16.2)
#### What's Changed
- π Add corev1, coordinationv1 scheme for leader election when LeaderElection manager option is true by [@troy0820](https://togithub.com/troy0820) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2466](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2466)
- π Use http client from leaderElectionConfig by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2468](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2468)
- π Default namespace only for namespaced object by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2482](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2482)
- π Do not update anything but status when using subresource client by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2483](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2483)
- :bug: Fix status subresource getting updated on Update when it is empty by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2485](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2485)
- :bug: Fix returning object after status update by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2490](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2490)
- :bug: Return NoResourceMatchError when appropriate for backwards compatibility. by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2492](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2492)
**Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.1...v0.16.2
### [`v0.16.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.1)
[Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1)
##### What's Changed
- π Refactor tests to drop hard otel dependency by [@howardjohn](https://togithub.com/howardjohn) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2465](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2465)
- :seedling: Bump k8s.io/apiserver from 0.28.0 to 0.28.1 by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2459](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2459)
**Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1
### [`v0.16.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.0)
[Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.2...v0.16.0)
#### Highlights
- Granular cache configuration ([#2421](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2421))
- New cache option to fail on missing informer on cache reads ([#2406](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2406))
- Secure metrics serving ([#2407](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2407))
- Upgrade to Kubernetes 1.28 libraries ([#2393](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2393), [#2405](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2405), [#2449](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2449))
#### Changes since v0.15
##### :warning: Breaking Changes
- Bump k8s.io/\* dependencies to v1.28.0 by [@sbueringer](https://togithub.com/sbueringer) ([#2393](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2393), [#2405](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2405), [#2449](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2449))
- Allow configuring more granular cache filtering by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2421](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2421))
- Introduce Metrics Options & secure metrics serving by [@sbueringer](https://togithub.com/sbueringer) ([#2407](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2407))
- Return an error if the continue list option is set for the cache reader by [@shuheiktgw](https://togithub.com/shuheiktgw) ([#2439](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2439))
- Remove deprecated manager, webhook and cluster options by [@sbueringer](https://togithub.com/sbueringer) ([#2422](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2422))
- Remove deprecated MultiNamespacedCacheBuilder, NewFakeClientWithScheme, controllerutil.Object, envtest.Environment.KubeAPIServerFlags & zap.Options.DestWritter by [@sbueringer](https://togithub.com/sbueringer) ([#2423](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2423))
- controller builder: return error when multiple reconcilers are set by [@sbueringer](https://togithub.com/sbueringer) ([#2415](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2415))
- fake client: use correct RBAC apiGroup name when deciding if to allow unconditional updates by [@jaideepr97](https://togithub.com/jaideepr97) ([#2412](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2412))
- Minor improvements to godoc & code style in cache pkg by [@sbueringer](https://togithub.com/sbueringer) ([#2416](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2416))
##### :sparkles: New Features
- Cache: add ReaderFailOnMissingInformer option by [@stevekuznetsov](https://togithub.com/stevekuznetsov) ([#2406](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2406))
- Cache: allow non-blocking retrieval of informers by [@maxsmythe](https://togithub.com/maxsmythe) ([#2371](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2371))
##### :bug: Bug Fixes
- Add missing return statement in admission.Decoder.DecodeRaw by [@lleshchi](https://togithub.com/lleshchi) ([#2433](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2433))
- fakeClient.Status().Update(...) cannot recognize resource version conflicts by [@iiiceoo](https://togithub.com/iiiceoo) ([#2365](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2365))
- Fix Defaulting of the User Agent by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2435](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2435))
- Fix logs in the unstructured client by [@Poor12](https://togithub.com/Poor12) ([#2343](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2343))
- Fix unspecified KindsFor version by [@tenstad](https://togithub.com/tenstad) ([#2346](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2346))
- Fix TerminalError(nil).Error() panic by [@sheidkamp](https://togithub.com/sheidkamp) ([#2438](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2438))
- hasLabels and matchingLabels step on each other by [@shanshanying](https://togithub.com/shanshanying) ([#2363](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2363))
- SetLogger should work with nil sinks by [@vincepri](https://togithub.com/vincepri) ([#2367](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2367))
##### :seedling: Others
- Use NewRateLimitingQueueWithConfig instead of deprecated NewNamedRateLimitingQueue by [@sbueringer](https://togithub.com/sbueringer) ([#2411](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2411))
- Add a prefix to the stack trace printed after SetLogger timeout by [@vincepri](https://togithub.com/vincepri) ([#2357](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2357))
- Minor improvements to godoc, code style in builder pkg by [@sbueringer](https://togithub.com/sbueringer) ([#2414](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2414))
- Add integration test to avoid manager.Start deadlocks by [@sbueringer](https://togithub.com/sbueringer) ([#2418](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2418))
- Automatically regenerate scratch env go mod file by [@sbueringer](https://togithub.com/sbueringer) ([#2413](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2413))
- Introduce a new runnable group for basic servers of the manager by [@zqzten](https://togithub.com/zqzten) ([#2337](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2337))
- Add logs around Reconcile call, change webhook logs to log level 5 by [@sbueringer](https://togithub.com/sbueringer) ([#2419](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2419))
- Add action to update modules on dependabot PRs by [@sbueringer](https://togithub.com/sbueringer) ([#2447](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2447), [#2448](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2448))
- Optimize Add/RemoveFinalizer by [@0xff-dev](https://togithub.com/0xff-dev) ([#2348](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2348))
- Log warning if error and non-zero Result are returned by [@sbueringer](https://togithub.com/sbueringer) ([#2451](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2451))
##### :book: Documentation and proposals
- Add a design for cache options configuration by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2261](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2261))
- Add documentation to clarify the ContentType behavior by [@FillZpp](https://togithub.com/FillZpp) ([#2410](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2410))
- Clarify that the reconcile.Result is ignored on non-nil error by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2444](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2444))
- Fix typo "compatiblity" to "compatibility" by [@ArshiAAkhavan](https://togithub.com/ArshiAAkhavan) ([#2396](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2396))
- Update fake client doc.go to avoid the deprecated method by [@sunglim](https://togithub.com/sunglim) ([#2392](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2392))
##### :chart_with_upwards_trend: Dependencies
- Bump k8s.io/klog/v2 from 2.90.1 to 2.100.1 by [@dependabot](https://togithub.com/dependabot) ([#2294](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2294))
- Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.11.0 by [@dependabot](https://togithub.com/dependabot) ([#2368](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2368), [#2376](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2376), [#2384](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2384))
- Bump github.com/onsi/gomega from 1.27.7 to 1.27.8 by [@dependabot](https://togithub.com/dependabot) ([#2375](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2375), [#2420](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2420))
- Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 by [@dependabot](https://togithub.com/dependabot) ([#2383](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2383))
- Bump golang.org/x/sys from 0.8.0 to 0.11.0 by [@dependabot](https://togithub.com/dependabot) ([#2377](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2377), [#2401](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2401), [#2441](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2441))
- Bump gomodules.xyz/jsonpatch/v2 from 2.3.0 to 2.4.0 by [@dependabot](https://togithub.com/dependabot) ([#2446](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2446))
- Bump go.uber.org/zap from 1.24.0 to 1.25.0 by [@dependabot](https://togithub.com/dependabot) ([#2440](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2440))
- Bump golangci-lint to v1.53 by [@vincepri](https://togithub.com/vincepri) ([#2398](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2398))
- Bump controller-tools to v0.13 by [@sbueringer](https://togithub.com/sbueringer) ([#2450](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2450))
*Thanks to all our contributors!* π
**Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.16.0
### [`v0.15.2`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.2)
[Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.1...v0.15.2)
#### What's Changed
- π Fix TerminalError(nil).Error() panic by [@sheidkamp](https://togithub.com/sheidkamp) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2443](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2443)
- π Add missing return statement in the webhook admissions func by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2452](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2452)
**Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.1...v0.15.2
### [`v0.15.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.1)
[Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1)
#### What's Changed
- \[release-0.15] β¨Fix logs in unstructured client by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2344](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2344)
- \[release-0.15] π fix unspecified KindsFor version by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2347](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2347)
- \[release-0.15] π fakeClient.Status().Update(...) cannot recognize resource version conflicts by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2372](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2372)
- \[release-0.15] π hasLabels and matchingLabels step on each other by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2373](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2373)
- \[release-0.15] :bug: Fix Defaulting of the User Agent by [@alvaroaleman](https://togithub.com/alvaroaleman) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2436](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2436)
**Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1
### [`v0.15.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.0)
[Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.14.6...v0.15.0)
### Controller Runtime v0.15
> *A note from the maintainers*
>
> The following release is probably the largest in the history of the project. Controller Runtime is a foundational piece for almost all controllers and operators and we're aware that breaking changes are never an ask for our users, especially while running production services.
>
> We take breaking changes very seriously and carefully reviewed each one of these changes to improve the codebase, user experience, and future maintainability of the project.
>
> The v0.15 release is a stepping stone towards maturity.
>
> As always, please reach out in Slack in #controller-runtime.
## Changes since v0.14.5
#### :warning: Breaking Changes
- Make `*http.Client` configurable and use/share the same client by default ([#2122](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2122))
- When using the default Manager configuration, no immediate changes are needed.
- `client/apiutil.NewDynamicRESTMapper` signature has changed and now requires an `*http.Client` as parameter.
- `cluster.Cluster` interface requires `GetHTTPClient()` method which must return an already configured, non-nil, `*http.Client` for the Cluster. When using `cluster.New` to create Clusters, the client is created internally if not specified as an `Options` field.
- `cluster.Options.MapperProvider` field now requires a `*rest.Config` and `*http.Client`.
- Deprecate Component Configuration `config/v1alpha1` types ([#2149](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2149), [#2200](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2200))
- The Component Configuration package has been unmaintained for over a year and is no longer actively developed. There are (currently) no plans to revive the package, or provide an alternative.
- Users should migrate to a custom implementation that sets `Manager.Options` directly.
- π Feedback requested: removal of the deprecated types and code is tracked in [#895](https://togithub.com/kubernetes-sigs/controller-runtime/issues/895).
- Remove dependency injection functions ([#2134](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2134), [#2120](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2120))
- The package `pkg/inject` has been removed, this package contained long deprecated injection functions (like `InjectScheme`, `InjectLogger`, `InjectConfig`, `InjectClient`, `InjectCache`, etc.).
- The runtime injection functionality has been deprecated since Controller Runtime 0.10; all of the above fields can be passed from the `Manager` to structs or interfaces that need them.
- Improve `builder` package capabilities and general UX ([#2135](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2135))
- `builder.Builder.Watches` signature has changed, it now takes a `client.Object` instead of a `source.Source` as first argument.
- For `source.Source`, use `WatchesRawSource`.
- `builder.Builder.WatchesMetadata` has been added to simplify watching `PartialObjectMetadata` objects.
- Refactor cache.Options, deprecate MultiNamespacedCacheBuilder ([#2157](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2157), [#2166](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2166))
- `cache.Options.Namespace` has been removed in favor of `cache.Options.Namespaces`, a slice.
- `cache.Options.Resync` has been renamed to `SyncPeriod`.
- `cache.Options.DefaultSelector` has been removed and split in two fields:
- `cache.Options.DefaultLabelSelector`
- `cache.Options.DefaultFieldSelector`
- `cache.Options.DefaultTransform` was added to provide a global transform function.
- `cache.Options.UnsafeDisableDeepCopy` was added to provide a global toggle to disable DeepCopy of the objects from the cache before returning them to clients.
- The following `[..]ByObject` field have been refactored:
- `cache.Options.SelectorsByObject` has been removed, use `cache.Options.ByObject[Object].Field` and `cache.Options.ByObject[Object].Label`
- `cache.Options.UnsafeDisableDeepCopyByObject` has been removed, use `cache.Options.ByObject[Object].UnsafeDisableDeepCopy`.
- `cache.Options.TransformByObject` has been removed, use `cache.Options.ByObject[Object].Transform`.
- `cache.ObjectAll` has been removed. This type was previously used to set selectors or transformation functions for every object, use the newly introduced default global options instead.
- Add context to EventHandler(s) ([#2139](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2139))
- `handler.EventHandler` and `handler.Funcs` interfaces require `context.Context` as the first parameter for every method.
- `handler.MapFunc` signature has changed and now requires a `context.Context`.
- Add client.{GroupVersionKindFor, IsObjectNamespaced} ([#2136](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2136))
- The `client.Client` interface now requires and exposes these helper functions:
- `GroupVersionKindFor(Object)` which returns the `schema.GroupVersionKind` for the object.
- `IsObjectNamespaced(Object)` which returns `true` if the object's GroupVersionKind is namespaced, or `false` for global ones.
- Remove DelegatedClient, move all related options in `client.New` ([#2150](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2150))
- `client.NewDelegatingClient` constructor and `client.NewDelegatingClientInput` struct have been removed.
- The DelegatingClient created a Client backed by a cache, use `client.New` and set `client.Options.Cache` to customize the client's caching behavior.
- `cluster.NewClientFunc` has been moved to `client.NewClientFunc`.
- `cluster.ClientOptions` has been removed.
- `cluster.DefaultNewClient` has been removed.
- `cluster.ClientBuilderWithOptions` has been removed.
- Expose Manager.Cache/Client options, deprecate older options ([#2199](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2199), [#2177](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2177))
- `manager.Options.Cache` is now the preferred way to customize the cache options for the manager.
- Users can also keep using `manager.Options.NewCache`, which has now been marked as a low level primitive.
- `manager.Options.Client` is now the preferred way to customize the client options for the manager.
- Users can also keep using `manager.Options.NewClient`, which has now been marked as a low level primitive.
- `manager.Options.SyncPeriod` has been deprecated in favor of `manager.Options.Cache.SyncPeriod`.
- `manager.Options.Namespace` has been deprecated in favor of `manager.Options.Cache.Namespaces`.
- `manager.Options.DryRunClient` has been deprecated in favor of `manager.Options.Client.DryRun`.
- `manager.Options.ClientDisableCacheFor` has been deprecated in favor of `manager.Options.Client.Cache.DisableCacheFor`.
- The following webhook server options have been deprecated, use `manager.WebhookServer` instead.
- `manager.Options.Port`
- `manager.Options.Host`
- `manager.Options.CertDir`
- `manager.Options.TLSOpts`
- Remove `cache.BuilderWithOptions` ([#2300](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2300))
- Add constructors for `webhook/conversion`, remove `webhook/admission.GetDecoder()` ([#2144](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2144))
- There are two set of changes related to the webhooks and how they're exposed. For users using the Manager, there should be minimal to no required changes.
- `webhook/admission/Webhook.GetDecoder()` method has been removed, it was unused before and relied on runtime dependency injection.
- `webhook/conversion.Webhook` struct has been un-exported. Users should use `webhook/conversion.NewWebhookHandler` instead.
- `pkg/webhook/admission`:
- Use `Result.Message` instead of `Result.Reason` ([#1539](https://togithub.com/kubernetes-sigs/controller-runtime/issues/1539))
- `Validator` and `CustomValidator` interfaces have been modified to allow returning warnings ([#2014](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2014))
- Testing: Fake client status handling ([#2259](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2259))
- Added a new `WithStatusSubresource` option and pre-populating it with
all in-tree resources that have a status subresource
- `Update` and `Patch` methods now don't change the status for any such
resource anymore
- The status clients `Update` and `Patch` methods now only change the status
for any such resource
- Remove high cardinality metrics ([#2217](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2217), [#2298](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2298))
- `rest_client_request_latency_seconds`
- `rest_client_request_duration_seconds`
- `rest_client_request_size_bytes`
- `rest_client_response_size_bytes`
- Allow passing a custom webhook server ([#2293](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2293), [#2329](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2329))
- The `webhook.Server` struct is now an interface
- `webhook.NewServer` can be used to pass in and customize the default server
- Flatten fields in controller.Options ([#2307](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2307))
- Update fake client deletionTimestamp behavior ([#2316](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2316))
- The fake client will panic if initialized with an object that has a DeletionTimestamp and no finalizer
- The fake client will silently ignore a DeletionTimestamp on an object in a Create request, matching the behavior of the kube-apiserver
- Unexport delegating logger, remove async init ([#2317](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2317))
- `log.DelegatingLogSink` has been unexported, this logger should never be used on its own, and it's only meant to be used within controller-runtime initialization process.
- Previously, when the `pkg/log` package was imported, there was an `init` function that spawned a goroutine, which set a null logger after 30 seconds. Now this logic has been removed, and instead incorporated into the delegating logger private implementation.
- Change webhook request received / response written logs to log level 4 ([#2334](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2334))
- Use and offer a single dynamic lazy RESTMapper ([#2116](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2116), [#2296](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2296))
- The following options have been removed: `WithCustomMapper`, `WithExperimentalLazyMapper`, `WithLazyDiscovery`, `WithLimiter`.
- The `DynamicRESTMapperOption` type has been removed.
#### :sparkles: New Features
- Add cross-version compatibility with client-go 1.27 ([#2223](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2223))
- Introduce pprof server to manager ([#1943](https://togithub.com/kubernetes-sigs/controller-runtime/issues/1943))
- To enable, use `Manager.Options.PprofBindAddress`.
- Added interceptor client to intercept calls to a client ([#2248](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2248) [#2306](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2306))
- Add `reconcile.TerminalError(...)` ([#2325](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2325))
- By wrapping an error with the above package-level function, the controller won't retry the request again in an exponential backoff loop.
- The error is logged, and the `controller_runtime_terminal_reconcile_errors_total` metric is incremented.
#### :bug: Bug Fixes
- Use correct context to cancel "list and watch" & wait for all informers to complete ([#2121](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2121))
- Client: use passed in Cache.DisableFor option ([#2303](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2303))
- Fix race condition in channel source ([#2286](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2286))
- ForceOwnership should work with subresources ([#2257](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2257))
- Fix error string in CacheReader.List ([#2256](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2256))
- Fix a bug in multinamespaced cache implementation ([#2252](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2252))
- Allow lazy restmapper to work with CRDs created at runtime ([#2208](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2208))
- Set DeleteStateUnknown in DeleteEvent when obj is DeletedFinalStateUnknown ([#2212](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2212))
- Allow to set GracefulShutdownTimeout to -1, disabling timeouts ([#2169](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2169))
- pkg/certwatcher: Start should retry for 10s when adding files ([#2160](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2160))
- Don't share error concurrently in test ([#2158](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2158))
#### :seedling: Others
- Improve unstructured serialisation ([#2147](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2147))
- Handle TLSOpts.GetCertificate in webhook ([#2291](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2291))
- Kind source should expose type information on timeout ([#2290](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2290))
- Fakeclient: Add support for evictions ([#2305](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2305))
- envtest: set default webhook options for polling ([#2289](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2289))
- Add client.InNamespace("xyz").AsSelector() ([#2282](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2282))
- Update golanci-lint script ([#2151](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2151))
- Preserve unstructured object GVKs in cache.Options.ByObject ([#2246](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2246))
- Don't call defaultOpts for MultiNamespaceCache twice ([#2234](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2234))
- GVKForObject should handle multiple GVKs in Scheme gracefully ([#2192](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2192))
- verify.sh: verify generate & modules (in CI) ([#2186](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2186))
- code clean for pkg/envtest/server.go ([#2180](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2180))
- Return an error if no httpClient is provided for `NewDynamicRESTMapper` ([#2178](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2178))
- Use runtime.Unstructured interface instead of Unstructured struct ([#2168](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2168))
- Return an error if no httpClient is provided ([#2164](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2164))
- Return the error from rest.HTTPClientFor instead of hiding it ([#2161](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2161))
- fix default value for cfg.Burst ([#2142](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2142))
- Add more linters ([#2133](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2133))
- Remove pkg/patterns ([#2132](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2132))
- Further cleanup internal/informers ([#2130](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2130))
- Simplify cache.objectTypeForListObject ([#2131](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2131))
- Refactor internal cache/informers map impl ([#2103](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2103))
- client/cache/client_cache.go should be called resources ([#2111](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2111))
- Remove reviewers which are also approvers ([#2109](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2109))
- Use HTTPClient to create the API Reader ([#2163](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2163))
- Update SECURITY_CONTACTS and maintainer list ([#2318](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2318))
- Update builtin webhook paths ([#2319](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2319))
- Make metrics and health probe servers be Runnables ([#2275](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2275))
- Revert: move health probes to runnable ([#2321](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2321))
- Fix comment on MultiNamespaceCache ([#2323](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2323))
- Cleanup webhook logging ([#2326](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2326))
- Add certwatcher callback ([#2301](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2301))
- Fix a bug in multinamespaced cache implementation ([#2288](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2288))
#### :seedling: Dependencies
- Bump Go to 1.20 ([#2279](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2279))
- Bump github.com/go-logr/logr from v1.2.3 to v1.2.4 ([#2262](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2262))
- Bump github.com/go-logr/zapr from v1.2.3 to v1.2.4 ([#2320](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2320))
- Bump github.com/onsi/ginkgo/v2 from v2.6.1 to v2.9.5 ([#2123](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2123) [#2155](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2155) [#2194](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2194) [#2205](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2205) [#2224](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2224) [#2233](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2233) [#2251](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2251) [#2311](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2311) [#2328](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2328))
- Bump github.com/onsi/gomega from v1.24.1 to v1.27.7 ([#2106](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2106) [#2137](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2137) [#2156](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2156) [#2206](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2206) [#2227](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2227) [#2232](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2232) [#2260](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2260) [#2340](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2340))
- Bump github.com/prometheus/client_golang from v1.14.0 to v1.15.1 ([#2280](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2280) [#2310](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2310))
- Bump github.com/prometheus/client_model from v0.3.0 to v0.4.0 ([#2312](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2312))
- Bump go.uber.org/goleak from v1.2.0 to v1.2.1 ([#2195](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2195))
- Bump golang.org/x/sys from v0.3.0 to v0.8.0 ([#2124](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2124) [#2225](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2225) [#2270](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2270) [#2309](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2309))
- Bump k8s.io dependencies to 0.27.2 ([#2145](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2145) [#2330](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2330) [#2333](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2333))
- Bump k8s.io/klog/v2 from v2.80.1 to v2.90.1 ([#2138](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2138) [#2226](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2226))
- Bump sigs.k8s.io/controller-tools to v0.11.3 and apidiff to v0.5.0 ([#2187](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2187))
- Use Go 1.19 in golangci-lint action ([#2272](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2272))
- Bump golangci-lint to v1.52.1 ([#2188](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2188) [#2284](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2284))
- Bump kubebuilder-release-tools to v0.3.0 ([#2126](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2126))
:book: Additionally, there have been 4 contributions to our documentation and book. ([#2203](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2203), [#2201](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2201), [#2162](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2162), [#2170](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2170))
*Thanks to all our contributors!* π
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.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v0.14.6
->v0.16.2
Release Notes
kubernetes-sigs/controller-runtime (sigs.k8s.io/controller-runtime)
### [`v0.16.2`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.2) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.1...v0.16.2) #### What's Changed - π Add corev1, coordinationv1 scheme for leader election when LeaderElection manager option is true by [@troy0820](https://togithub.com/troy0820) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2466](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2466) - π Use http client from leaderElectionConfig by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2468](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2468) - π Default namespace only for namespaced object by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2482](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2482) - π Do not update anything but status when using subresource client by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2483](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2483) - :bug: Fix status subresource getting updated on Update when it is empty by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2485](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2485) - :bug: Fix returning object after status update by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2490](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2490) - :bug: Return NoResourceMatchError when appropriate for backwards compatibility. by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2492](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2492) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.1...v0.16.2 ### [`v0.16.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.1) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1) ##### What's Changed - π Refactor tests to drop hard otel dependency by [@howardjohn](https://togithub.com/howardjohn) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2465](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2465) - :seedling: Bump k8s.io/apiserver from 0.28.0 to 0.28.1 by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2459](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2459) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1 ### [`v0.16.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.0) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.2...v0.16.0) #### Highlights - Granular cache configuration ([#2421](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2421)) - New cache option to fail on missing informer on cache reads ([#2406](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2406)) - Secure metrics serving ([#2407](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2407)) - Upgrade to Kubernetes 1.28 libraries ([#2393](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2393), [#2405](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2405), [#2449](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2449)) #### Changes since v0.15 ##### :warning: Breaking Changes - Bump k8s.io/\* dependencies to v1.28.0 by [@sbueringer](https://togithub.com/sbueringer) ([#2393](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2393), [#2405](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2405), [#2449](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2449)) - Allow configuring more granular cache filtering by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2421](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2421)) - Introduce Metrics Options & secure metrics serving by [@sbueringer](https://togithub.com/sbueringer) ([#2407](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2407)) - Return an error if the continue list option is set for the cache reader by [@shuheiktgw](https://togithub.com/shuheiktgw) ([#2439](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2439)) - Remove deprecated manager, webhook and cluster options by [@sbueringer](https://togithub.com/sbueringer) ([#2422](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2422)) - Remove deprecated MultiNamespacedCacheBuilder, NewFakeClientWithScheme, controllerutil.Object, envtest.Environment.KubeAPIServerFlags & zap.Options.DestWritter by [@sbueringer](https://togithub.com/sbueringer) ([#2423](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2423)) - controller builder: return error when multiple reconcilers are set by [@sbueringer](https://togithub.com/sbueringer) ([#2415](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2415)) - fake client: use correct RBAC apiGroup name when deciding if to allow unconditional updates by [@jaideepr97](https://togithub.com/jaideepr97) ([#2412](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2412)) - Minor improvements to godoc & code style in cache pkg by [@sbueringer](https://togithub.com/sbueringer) ([#2416](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2416)) ##### :sparkles: New Features - Cache: add ReaderFailOnMissingInformer option by [@stevekuznetsov](https://togithub.com/stevekuznetsov) ([#2406](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2406)) - Cache: allow non-blocking retrieval of informers by [@maxsmythe](https://togithub.com/maxsmythe) ([#2371](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2371)) ##### :bug: Bug Fixes - Add missing return statement in admission.Decoder.DecodeRaw by [@lleshchi](https://togithub.com/lleshchi) ([#2433](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2433)) - fakeClient.Status().Update(...) cannot recognize resource version conflicts by [@iiiceoo](https://togithub.com/iiiceoo) ([#2365](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2365)) - Fix Defaulting of the User Agent by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2435](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2435)) - Fix logs in the unstructured client by [@Poor12](https://togithub.com/Poor12) ([#2343](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2343)) - Fix unspecified KindsFor version by [@tenstad](https://togithub.com/tenstad) ([#2346](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2346)) - Fix TerminalError(nil).Error() panic by [@sheidkamp](https://togithub.com/sheidkamp) ([#2438](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2438)) - hasLabels and matchingLabels step on each other by [@shanshanying](https://togithub.com/shanshanying) ([#2363](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2363)) - SetLogger should work with nil sinks by [@vincepri](https://togithub.com/vincepri) ([#2367](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2367)) ##### :seedling: Others - Use NewRateLimitingQueueWithConfig instead of deprecated NewNamedRateLimitingQueue by [@sbueringer](https://togithub.com/sbueringer) ([#2411](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2411)) - Add a prefix to the stack trace printed after SetLogger timeout by [@vincepri](https://togithub.com/vincepri) ([#2357](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2357)) - Minor improvements to godoc, code style in builder pkg by [@sbueringer](https://togithub.com/sbueringer) ([#2414](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2414)) - Add integration test to avoid manager.Start deadlocks by [@sbueringer](https://togithub.com/sbueringer) ([#2418](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2418)) - Automatically regenerate scratch env go mod file by [@sbueringer](https://togithub.com/sbueringer) ([#2413](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2413)) - Introduce a new runnable group for basic servers of the manager by [@zqzten](https://togithub.com/zqzten) ([#2337](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2337)) - Add logs around Reconcile call, change webhook logs to log level 5 by [@sbueringer](https://togithub.com/sbueringer) ([#2419](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2419)) - Add action to update modules on dependabot PRs by [@sbueringer](https://togithub.com/sbueringer) ([#2447](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2447), [#2448](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2448)) - Optimize Add/RemoveFinalizer by [@0xff-dev](https://togithub.com/0xff-dev) ([#2348](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2348)) - Log warning if error and non-zero Result are returned by [@sbueringer](https://togithub.com/sbueringer) ([#2451](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2451)) ##### :book: Documentation and proposals - Add a design for cache options configuration by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2261](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2261)) - Add documentation to clarify the ContentType behavior by [@FillZpp](https://togithub.com/FillZpp) ([#2410](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2410)) - Clarify that the reconcile.Result is ignored on non-nil error by [@alvaroaleman](https://togithub.com/alvaroaleman) ([#2444](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2444)) - Fix typo "compatiblity" to "compatibility" by [@ArshiAAkhavan](https://togithub.com/ArshiAAkhavan) ([#2396](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2396)) - Update fake client doc.go to avoid the deprecated method by [@sunglim](https://togithub.com/sunglim) ([#2392](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2392)) ##### :chart_with_upwards_trend: Dependencies - Bump k8s.io/klog/v2 from 2.90.1 to 2.100.1 by [@dependabot](https://togithub.com/dependabot) ([#2294](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2294)) - Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.11.0 by [@dependabot](https://togithub.com/dependabot) ([#2368](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2368), [#2376](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2376), [#2384](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2384)) - Bump github.com/onsi/gomega from 1.27.7 to 1.27.8 by [@dependabot](https://togithub.com/dependabot) ([#2375](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2375), [#2420](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2420)) - Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 by [@dependabot](https://togithub.com/dependabot) ([#2383](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2383)) - Bump golang.org/x/sys from 0.8.0 to 0.11.0 by [@dependabot](https://togithub.com/dependabot) ([#2377](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2377), [#2401](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2401), [#2441](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2441)) - Bump gomodules.xyz/jsonpatch/v2 from 2.3.0 to 2.4.0 by [@dependabot](https://togithub.com/dependabot) ([#2446](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2446)) - Bump go.uber.org/zap from 1.24.0 to 1.25.0 by [@dependabot](https://togithub.com/dependabot) ([#2440](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2440)) - Bump golangci-lint to v1.53 by [@vincepri](https://togithub.com/vincepri) ([#2398](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2398)) - Bump controller-tools to v0.13 by [@sbueringer](https://togithub.com/sbueringer) ([#2450](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2450)) *Thanks to all our contributors!* π **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.16.0 ### [`v0.15.2`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.2) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.1...v0.15.2) #### What's Changed - π Fix TerminalError(nil).Error() panic by [@sheidkamp](https://togithub.com/sheidkamp) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2443](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2443) - π Add missing return statement in the webhook admissions func by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2452](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2452) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.1...v0.15.2 ### [`v0.15.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.1) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1) #### What's Changed - \[release-0.15] β¨Fix logs in unstructured client by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2344](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2344) - \[release-0.15] π fix unspecified KindsFor version by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2347](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2347) - \[release-0.15] π fakeClient.Status().Update(...) cannot recognize resource version conflicts by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2372](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2372) - \[release-0.15] π hasLabels and matchingLabels step on each other by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2373](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2373) - \[release-0.15] :bug: Fix Defaulting of the User Agent by [@alvaroaleman](https://togithub.com/alvaroaleman) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2436](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2436) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1 ### [`v0.15.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.0) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.14.6...v0.15.0) ### Controller Runtime v0.15 > *A note from the maintainers* > > The following release is probably the largest in the history of the project. Controller Runtime is a foundational piece for almost all controllers and operators and we're aware that breaking changes are never an ask for our users, especially while running production services. > > We take breaking changes very seriously and carefully reviewed each one of these changes to improve the codebase, user experience, and future maintainability of the project. > > The v0.15 release is a stepping stone towards maturity. > > As always, please reach out in Slack in #controller-runtime. ## Changes since v0.14.5 #### :warning: Breaking Changes - Make `*http.Client` configurable and use/share the same client by default ([#2122](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2122)) - When using the default Manager configuration, no immediate changes are needed. - `client/apiutil.NewDynamicRESTMapper` signature has changed and now requires an `*http.Client` as parameter. - `cluster.Cluster` interface requires `GetHTTPClient()` method which must return an already configured, non-nil, `*http.Client` for the Cluster. When using `cluster.New` to create Clusters, the client is created internally if not specified as an `Options` field. - `cluster.Options.MapperProvider` field now requires a `*rest.Config` and `*http.Client`. - Deprecate Component Configuration `config/v1alpha1` types ([#2149](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2149), [#2200](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2200)) - The Component Configuration package has been unmaintained for over a year and is no longer actively developed. There are (currently) no plans to revive the package, or provide an alternative. - Users should migrate to a custom implementation that sets `Manager.Options` directly. - π Feedback requested: removal of the deprecated types and code is tracked in [#895](https://togithub.com/kubernetes-sigs/controller-runtime/issues/895). - Remove dependency injection functions ([#2134](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2134), [#2120](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2120)) - The package `pkg/inject` has been removed, this package contained long deprecated injection functions (like `InjectScheme`, `InjectLogger`, `InjectConfig`, `InjectClient`, `InjectCache`, etc.). - The runtime injection functionality has been deprecated since Controller Runtime 0.10; all of the above fields can be passed from the `Manager` to structs or interfaces that need them. - Improve `builder` package capabilities and general UX ([#2135](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2135)) - `builder.Builder.Watches` signature has changed, it now takes a `client.Object` instead of a `source.Source` as first argument. - For `source.Source`, use `WatchesRawSource`. - `builder.Builder.WatchesMetadata` has been added to simplify watching `PartialObjectMetadata` objects. - Refactor cache.Options, deprecate MultiNamespacedCacheBuilder ([#2157](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2157), [#2166](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2166)) - `cache.Options.Namespace` has been removed in favor of `cache.Options.Namespaces`, a slice. - `cache.Options.Resync` has been renamed to `SyncPeriod`. - `cache.Options.DefaultSelector` has been removed and split in two fields: - `cache.Options.DefaultLabelSelector` - `cache.Options.DefaultFieldSelector` - `cache.Options.DefaultTransform` was added to provide a global transform function. - `cache.Options.UnsafeDisableDeepCopy` was added to provide a global toggle to disable DeepCopy of the objects from the cache before returning them to clients. - The following `[..]ByObject` field have been refactored: - `cache.Options.SelectorsByObject` has been removed, use `cache.Options.ByObject[Object].Field` and `cache.Options.ByObject[Object].Label` - `cache.Options.UnsafeDisableDeepCopyByObject` has been removed, use `cache.Options.ByObject[Object].UnsafeDisableDeepCopy`. - `cache.Options.TransformByObject` has been removed, use `cache.Options.ByObject[Object].Transform`. - `cache.ObjectAll` has been removed. This type was previously used to set selectors or transformation functions for every object, use the newly introduced default global options instead. - Add context to EventHandler(s) ([#2139](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2139)) - `handler.EventHandler` and `handler.Funcs` interfaces require `context.Context` as the first parameter for every method. - `handler.MapFunc` signature has changed and now requires a `context.Context`. - Add client.{GroupVersionKindFor, IsObjectNamespaced} ([#2136](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2136)) - The `client.Client` interface now requires and exposes these helper functions: - `GroupVersionKindFor(Object)` which returns the `schema.GroupVersionKind` for the object. - `IsObjectNamespaced(Object)` which returns `true` if the object's GroupVersionKind is namespaced, or `false` for global ones. - Remove DelegatedClient, move all related options in `client.New` ([#2150](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2150)) - `client.NewDelegatingClient` constructor and `client.NewDelegatingClientInput` struct have been removed. - The DelegatingClient created a Client backed by a cache, use `client.New` and set `client.Options.Cache` to customize the client's caching behavior. - `cluster.NewClientFunc` has been moved to `client.NewClientFunc`. - `cluster.ClientOptions` has been removed. - `cluster.DefaultNewClient` has been removed. - `cluster.ClientBuilderWithOptions` has been removed. - Expose Manager.Cache/Client options, deprecate older options ([#2199](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2199), [#2177](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2177)) - `manager.Options.Cache` is now the preferred way to customize the cache options for the manager. - Users can also keep using `manager.Options.NewCache`, which has now been marked as a low level primitive. - `manager.Options.Client` is now the preferred way to customize the client options for the manager. - Users can also keep using `manager.Options.NewClient`, which has now been marked as a low level primitive. - `manager.Options.SyncPeriod` has been deprecated in favor of `manager.Options.Cache.SyncPeriod`. - `manager.Options.Namespace` has been deprecated in favor of `manager.Options.Cache.Namespaces`. - `manager.Options.DryRunClient` has been deprecated in favor of `manager.Options.Client.DryRun`. - `manager.Options.ClientDisableCacheFor` has been deprecated in favor of `manager.Options.Client.Cache.DisableCacheFor`. - The following webhook server options have been deprecated, use `manager.WebhookServer` instead. - `manager.Options.Port` - `manager.Options.Host` - `manager.Options.CertDir` - `manager.Options.TLSOpts` - Remove `cache.BuilderWithOptions` ([#2300](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2300)) - Add constructors for `webhook/conversion`, remove `webhook/admission.GetDecoder()` ([#2144](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2144)) - There are two set of changes related to the webhooks and how they're exposed. For users using the Manager, there should be minimal to no required changes. - `webhook/admission/Webhook.GetDecoder()` method has been removed, it was unused before and relied on runtime dependency injection. - `webhook/conversion.Webhook` struct has been un-exported. Users should use `webhook/conversion.NewWebhookHandler` instead. - `pkg/webhook/admission`: - Use `Result.Message` instead of `Result.Reason` ([#1539](https://togithub.com/kubernetes-sigs/controller-runtime/issues/1539)) - `Validator` and `CustomValidator` interfaces have been modified to allow returning warnings ([#2014](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2014)) - Testing: Fake client status handling ([#2259](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2259)) - Added a new `WithStatusSubresource` option and pre-populating it with all in-tree resources that have a status subresource - `Update` and `Patch` methods now don't change the status for any such resource anymore - The status clients `Update` and `Patch` methods now only change the status for any such resource - Remove high cardinality metrics ([#2217](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2217), [#2298](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2298)) - `rest_client_request_latency_seconds` - `rest_client_request_duration_seconds` - `rest_client_request_size_bytes` - `rest_client_response_size_bytes` - Allow passing a custom webhook server ([#2293](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2293), [#2329](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2329)) - The `webhook.Server` struct is now an interface - `webhook.NewServer` can be used to pass in and customize the default server - Flatten fields in controller.Options ([#2307](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2307)) - Update fake client deletionTimestamp behavior ([#2316](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2316)) - The fake client will panic if initialized with an object that has a DeletionTimestamp and no finalizer - The fake client will silently ignore a DeletionTimestamp on an object in a Create request, matching the behavior of the kube-apiserver - Unexport delegating logger, remove async init ([#2317](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2317)) - `log.DelegatingLogSink` has been unexported, this logger should never be used on its own, and it's only meant to be used within controller-runtime initialization process. - Previously, when the `pkg/log` package was imported, there was an `init` function that spawned a goroutine, which set a null logger after 30 seconds. Now this logic has been removed, and instead incorporated into the delegating logger private implementation. - Change webhook request received / response written logs to log level 4 ([#2334](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2334)) - Use and offer a single dynamic lazy RESTMapper ([#2116](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2116), [#2296](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2296)) - The following options have been removed: `WithCustomMapper`, `WithExperimentalLazyMapper`, `WithLazyDiscovery`, `WithLimiter`. - The `DynamicRESTMapperOption` type has been removed. #### :sparkles: New Features - Add cross-version compatibility with client-go 1.27 ([#2223](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2223)) - Introduce pprof server to manager ([#1943](https://togithub.com/kubernetes-sigs/controller-runtime/issues/1943)) - To enable, use `Manager.Options.PprofBindAddress`. - Added interceptor client to intercept calls to a client ([#2248](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2248) [#2306](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2306)) - Add `reconcile.TerminalError(...)` ([#2325](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2325)) - By wrapping an error with the above package-level function, the controller won't retry the request again in an exponential backoff loop. - The error is logged, and the `controller_runtime_terminal_reconcile_errors_total` metric is incremented. #### :bug: Bug Fixes - Use correct context to cancel "list and watch" & wait for all informers to complete ([#2121](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2121)) - Client: use passed in Cache.DisableFor option ([#2303](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2303)) - Fix race condition in channel source ([#2286](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2286)) - ForceOwnership should work with subresources ([#2257](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2257)) - Fix error string in CacheReader.List ([#2256](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2256)) - Fix a bug in multinamespaced cache implementation ([#2252](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2252)) - Allow lazy restmapper to work with CRDs created at runtime ([#2208](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2208)) - Set DeleteStateUnknown in DeleteEvent when obj is DeletedFinalStateUnknown ([#2212](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2212)) - Allow to set GracefulShutdownTimeout to -1, disabling timeouts ([#2169](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2169)) - pkg/certwatcher: Start should retry for 10s when adding files ([#2160](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2160)) - Don't share error concurrently in test ([#2158](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2158)) #### :seedling: Others - Improve unstructured serialisation ([#2147](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2147)) - Handle TLSOpts.GetCertificate in webhook ([#2291](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2291)) - Kind source should expose type information on timeout ([#2290](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2290)) - Fakeclient: Add support for evictions ([#2305](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2305)) - envtest: set default webhook options for polling ([#2289](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2289)) - Add client.InNamespace("xyz").AsSelector() ([#2282](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2282)) - Update golanci-lint script ([#2151](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2151)) - Preserve unstructured object GVKs in cache.Options.ByObject ([#2246](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2246)) - Don't call defaultOpts for MultiNamespaceCache twice ([#2234](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2234)) - GVKForObject should handle multiple GVKs in Scheme gracefully ([#2192](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2192)) - verify.sh: verify generate & modules (in CI) ([#2186](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2186)) - code clean for pkg/envtest/server.go ([#2180](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2180)) - Return an error if no httpClient is provided for `NewDynamicRESTMapper` ([#2178](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2178)) - Use runtime.Unstructured interface instead of Unstructured struct ([#2168](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2168)) - Return an error if no httpClient is provided ([#2164](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2164)) - Return the error from rest.HTTPClientFor instead of hiding it ([#2161](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2161)) - fix default value for cfg.Burst ([#2142](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2142)) - Add more linters ([#2133](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2133)) - Remove pkg/patterns ([#2132](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2132)) - Further cleanup internal/informers ([#2130](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2130)) - Simplify cache.objectTypeForListObject ([#2131](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2131)) - Refactor internal cache/informers map impl ([#2103](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2103)) - client/cache/client_cache.go should be called resources ([#2111](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2111)) - Remove reviewers which are also approvers ([#2109](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2109)) - Use HTTPClient to create the API Reader ([#2163](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2163)) - Update SECURITY_CONTACTS and maintainer list ([#2318](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2318)) - Update builtin webhook paths ([#2319](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2319)) - Make metrics and health probe servers be Runnables ([#2275](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2275)) - Revert: move health probes to runnable ([#2321](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2321)) - Fix comment on MultiNamespaceCache ([#2323](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2323)) - Cleanup webhook logging ([#2326](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2326)) - Add certwatcher callback ([#2301](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2301)) - Fix a bug in multinamespaced cache implementation ([#2288](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2288)) #### :seedling: Dependencies - Bump Go to 1.20 ([#2279](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2279)) - Bump github.com/go-logr/logr from v1.2.3 to v1.2.4 ([#2262](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2262)) - Bump github.com/go-logr/zapr from v1.2.3 to v1.2.4 ([#2320](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2320)) - Bump github.com/onsi/ginkgo/v2 from v2.6.1 to v2.9.5 ([#2123](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2123) [#2155](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2155) [#2194](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2194) [#2205](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2205) [#2224](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2224) [#2233](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2233) [#2251](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2251) [#2311](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2311) [#2328](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2328)) - Bump github.com/onsi/gomega from v1.24.1 to v1.27.7 ([#2106](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2106) [#2137](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2137) [#2156](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2156) [#2206](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2206) [#2227](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2227) [#2232](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2232) [#2260](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2260) [#2340](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2340)) - Bump github.com/prometheus/client_golang from v1.14.0 to v1.15.1 ([#2280](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2280) [#2310](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2310)) - Bump github.com/prometheus/client_model from v0.3.0 to v0.4.0 ([#2312](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2312)) - Bump go.uber.org/goleak from v1.2.0 to v1.2.1 ([#2195](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2195)) - Bump golang.org/x/sys from v0.3.0 to v0.8.0 ([#2124](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2124) [#2225](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2225) [#2270](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2270) [#2309](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2309)) - Bump k8s.io dependencies to 0.27.2 ([#2145](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2145) [#2330](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2330) [#2333](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2333)) - Bump k8s.io/klog/v2 from v2.80.1 to v2.90.1 ([#2138](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2138) [#2226](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2226)) - Bump sigs.k8s.io/controller-tools to v0.11.3 and apidiff to v0.5.0 ([#2187](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2187)) - Use Go 1.19 in golangci-lint action ([#2272](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2272)) - Bump golangci-lint to v1.52.1 ([#2188](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2188) [#2284](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2284)) - Bump kubebuilder-release-tools to v0.3.0 ([#2126](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2126)) :book: Additionally, there have been 4 contributions to our documentation and book. ([#2203](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2203), [#2201](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2201), [#2162](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2162), [#2170](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2170)) *Thanks to all our contributors!* π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.
This PR has been generated by Mend Renovate. View repository job log here.