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 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.
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.
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)
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.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps sigs.k8s.io/controller-runtime from 0.14.6 to 0.15.1.
Release notes
Sourced from sigs.k8s.io/controller-runtime's releases.
... (truncated)
Commits
40203bf
Merge pull request #2436 from alvaroaleman/fix-ua-33de9624
:bug: Fix Defaulting of the User Agent0e37217
[release-0.15] 🐛 hasLabels and matchingLabels step on each other (#2373)111c938
Merge pull request #2372 from k8s-infra-cherrypick-robot/cherry-pick-2365-to-...37c58ae
🐛 fakeClient.Status().Update(...) cannot recognize resource version conflicts530dde0
[release-0.15] 🐛 fix unspecified KindsFor version (#2347)1a82503
Merge pull request #2344 from k8s-infra-cherrypick-robot/cherry-pick-2343-to-...c9cefc7
Fix logs in unstructured client116a1b8
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.7Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)