Sourced from sigs.k8s.io/controller-runtime's releases.
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)
- 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 requiresGetHTTPClient()
method which must return an already configured, non-nil,*http.Client
for the Cluster. When usingcluster.New
to create Clusters, the client is created internally if not specified as anOptions
field.cluster.Options.MapperProvider
field now requires a*rest.Config
and*http.Client
.- Deprecate Component Configuration
config/v1alpha1
types (#2149, #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.
- Remove dependency injection functions (#2134, #2120)
- The package
pkg/inject
has been removed, this package contained long deprecated injection functions (likeInjectScheme
,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)
builder.Builder.Watches
signature has changed, it now takes aclient.Object
instead of asource.Source
as first argument.
- For
source.Source
, useWatchesRawSource
.builder.Builder.WatchesMetadata
has been added to simplify watchingPartialObjectMetadata
objects.- Refactor cache.Options, deprecate MultiNamespacedCacheBuilder (#2157, #2166)
cache.Options.Namespace
has been removed in favor ofcache.Options.Namespaces
, a slice.cache.Options.Resync
has been renamed toSyncPeriod
.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, usecache.Options.ByObject[Object].Field
andcache.Options.ByObject[Object].Label
cache.Options.UnsafeDisableDeepCopyByObject
has been removed, usecache.Options.ByObject[Object].UnsafeDisableDeepCopy
.cache.Options.TransformByObject
has been removed, usecache.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)
handler.EventHandler
andhandler.Funcs
interfaces requirecontext.Context
as the first parameter for every method.handler.MapFunc
signature has changed and now requires acontext.Context
.- Add client.{GroupVersionKindFor, IsObjectNamespaced} (#2136)
- The
client.Client
interface now requires and exposes these helper functions:
... (truncated)
116a1b8
Merge pull request #2340
from kubernetes-sigs/dependabot/go_modules/github.co...96bf7c3
:seedling: Bump github.com/onsi/gomega from 1.27.6 to 1.27.7f9a3164
Merge pull request #2338
from howardjohn/mod/bump-jsonpatch73ae72f
:seedling: bump jsonpatch to v2.3.0e7b9407
Merge pull request #2334
from sbueringer/pr-webhook-log-levelsbabed98
Reduce webhook log verbosity260b822
Merge pull request #2333
from lucacome/tests-0.27.2c8b911b
Re-enable tests for v0.27.21fe22d0
Merge pull request #2330
from lucacome/bump-k8s.io-deps0cc8dd8
Bump k8s.io dependencies