good morning!!!!

Skip to content

Update module sigs.k8s.io/controller-runtime to v0.19.1

autocafe requested to merge renovate/sigs.k8s.io-controller-runtime-0.x into master

This MR contains the following updates:

Package Type Update Change
sigs.k8s.io/controller-runtime require minor v0.11.1 -> v0.19.1

Release Notes

kubernetes-sigs/controller-runtime (sigs.k8s.io/controller-runtime)

v0.19.1

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.19.0...v0.19.1

v0.19.0

Compare Source

Deprecation Warnings

Please note that admission.Defaulter/Validator have been deprecated in favor of admission.CustomDefaulter/CustomValidator since v0.17 and will be removed with v0.20.

Breaking Changes

New Features

  • client: Add WithFieldValidation client (#​2860 #​2913)
  • controller & webhook: Recover panics per default & add panic metrics (#​2905)
  • controllerutil: configure BlockOwnerDeletion when setting OwnerReference (#​2847)
  • fake client: Add scale subresource logic (#​2855)
  • predicate: Add missing generic version of ResourceVersionChangedPredicate (#​2812)
  • setup-envtest: Download binaries from controller-tools releases instead of GCS (#​2811)
  • setup-envtest: Publish setup-envtest binaries via release attachments (#​2911)
  • workqueue: Add controller label to workqueue metrics (#​2895)

🐛 Bug Fixes

  • apiutil.IsGVKNamespaced: Fix namespaced GVK check to use version (#​2875)
  • cache: Fix label defaulting of byObject when namespaces are configured (#​2805)
  • certwatcher: Recreate watcher if the file is unlinked and replaced (#​2893)
  • manager: Fix log in AddMetricsServerExtraHandler (#​2874)
  • manager: Quiet context.Canceled errors during shutdown (#​2745)
  • manager: Reintroduce AddMetricsServerExtraHandler (#​2813)
  • manager.Start: Prevent LeaderElector setup error from being swallowed (#​2876)
  • source.Kind: String() should return correct type (#​2806)

🌱 Others

  • actions: Add action to approve actions if /ok-to-test is set (#​2908)
  • controller: Add dynamic watcher tests (#​2881)
  • dependabot: disable go module bumps, bump all actions in a single MR (#​2856)
  • verify-modules: Verify go modules are in sync with upstream k/k (#​2774)

📖 Additionally, there have been 5 contributions to our documentation. (#​2830, #​2849, #​2863, #​2894, #​2899, #​2910)

Dependencies

Added
  • cel.dev/expr: v0.15.0
  • github.com/antlr4-go/antlr/v4: v4.13.0
  • github.com/cpuguy83/go-md2man/v2: v2.0.4
  • github.com/go-task/slim-sprig/v3: v3.0.0
  • github.com/russross/blackfriday/v2: v2.1.0
  • gopkg.in/evanphx/json-patch.v4: v4.12.0
Changed
  • cloud.google.com/go/compute/metadata: v0.2.3 → v0.3.0
  • github.com/alecthomas/kingpin/v2: v2.3.2 → v2.4.0
  • github.com/cenkalti/backoff/v4: v4.2.1 → v4.3.0
  • github.com/cespare/xxhash/v2: v2.2.0 → v2.3.0
  • github.com/chzyer/readline: 2972be2 → v1.5.1
  • github.com/cncf/xds/go: e9ce688 → 555b57e
  • github.com/davecgh/go-spew: v1.1.1 → d8f796a
  • github.com/envoyproxy/go-control-plane: v0.11.1 → v0.12.0
  • github.com/envoyproxy/protoc-gen-validate: v1.0.2 → v1.0.4
  • github.com/evanphx/json-patch: v4.12.0+incompatible → v0.5.2
  • github.com/felixge/httpsnoop: v1.0.3 → v1.0.4
  • github.com/fxamacker/cbor/v2: v2.6.0 → v2.7.0
  • github.com/go-logr/logr: v1.4.1 → v1.4.2
  • github.com/go-openapi/swag: v0.22.3 → v0.22.4
  • github.com/golang/glog: v1.1.0 → v1.2.1
  • github.com/google/cel-go: v0.17.8 → v0.20.1
  • github.com/google/pprof: 4bb14d4 → 4bfdf5a
  • github.com/google/uuid: v1.3.0 → v1.6.0
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.16.0 → v2.20.0
  • github.com/ianlancetaylor/demangle: 28f6c0f → bd984b5
  • github.com/matttproud/golang_protobuf_extensions: v1.0.4 → v1.0.1
  • github.com/moby/spdystream: v0.2.0 → v0.4.0
  • github.com/moby/term: 1aeaba8 → v0.5.0
  • github.com/onsi/ginkgo/v2: v2.17.1 → v2.19.0
  • github.com/onsi/gomega: v1.32.0 → v1.33.1
  • github.com/pmezard/go-difflib: v1.0.0 → 5d4384e
  • github.com/prometheus/client_golang: v1.16.0 → v1.19.1
  • github.com/prometheus/client_model: v0.4.0 → v0.6.1
  • github.com/prometheus/common: v0.44.0 → v0.55.0
  • github.com/prometheus/procfs: v0.12.0 → v0.15.1
  • github.com/rogpeppe/go-internal: v1.10.0 → v1.12.0
  • github.com/sirupsen/logrus: v1.9.0 → v1.9.3
  • github.com/spf13/cobra: v1.7.0 → v1.8.1
  • github.com/stretchr/testify: v1.8.4 → v1.9.0
  • go.etcd.io/bbolt: v1.3.8 → v1.3.9
  • go.etcd.io/etcd/api/v3: v3.5.10 → v3.5.14
  • go.etcd.io/etcd/client/pkg/v3: v3.5.10 → v3.5.14
  • go.etcd.io/etcd/client/v2: v2.305.10 → v2.305.13
  • go.etcd.io/etcd/client/v3: v3.5.10 → v3.5.14
  • go.etcd.io/etcd/pkg/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/raft/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/server/v3: v3.5.10 → v3.5.13
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.42.0 → v0.53.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.44.0 → v0.53.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.19.0 → v1.27.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel/metric: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel/sdk: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel/trace: v1.19.0 → v1.28.0
  • go.opentelemetry.io/otel: v1.19.0 → v1.28.0
  • go.opentelemetry.io/proto/otlp: v1.0.0 → v1.3.1
  • golang.org/x/crypto: v0.21.0 → v0.24.0
  • golang.org/x/exp: a9213eef3d0a9c
  • golang.org/x/mod: v0.15.0 → v0.17.0
  • golang.org/x/net: v0.23.0 → v0.26.0
  • golang.org/x/oauth2: v0.12.0 → v0.21.0
  • golang.org/x/sync: v0.6.0 → v0.7.0
  • golang.org/x/sys: v0.18.0 → v0.21.0
  • golang.org/x/telemetry: b75ee88f48c80b
  • golang.org/x/term: v0.18.0 → v0.21.0
  • golang.org/x/text: v0.14.0 → v0.16.0
  • golang.org/x/tools: v0.18.0 → e35e4cc
  • google.golang.org/genproto/googleapis/api: 23370e05315273
  • google.golang.org/genproto/googleapis/rpc: b8732ecf6361c8
  • google.golang.org/genproto: f966b18b8732ec
  • google.golang.org/grpc: v1.58.3 → v1.65.0
  • google.golang.org/protobuf: v1.33.0 → v1.34.2
  • k8s.io/api: v0.30.0 → v0.31.0
  • k8s.io/apiextensions-apiserver: v0.30.0 → v0.31.0
  • k8s.io/apimachinery: v0.30.0 → v0.31.0
  • k8s.io/apiserver: v0.30.0 → v0.31.0
  • k8s.io/client-go: v0.30.0 → v0.31.0
  • k8s.io/code-generator: v0.30.0 → v0.31.0
  • k8s.io/component-base: v0.30.0 → v0.31.0
  • k8s.io/klog/v2: v2.120.1 → v2.130.1
  • k8s.io/kms: v0.30.0 → v0.31.0
  • k8s.io/utils: 3b25d9218e509b
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.29.0 → v0.30.3
  • sigs.k8s.io/yaml: v1.3.0 → v1.4.0
Removed
  • cloud.google.com/go/compute: v1.21.0
  • github.com/antlr/antlr4/runtime/Go/antlr/v4: 8188dc5
  • github.com/chzyer/logex: v1.1.10
  • github.com/chzyer/test: a1ea475
  • github.com/cncf/udpa/go: c52dc94
  • github.com/go-task/slim-sprig: 52ccab3

Thanks to all our contributors! 😊

v0.18.5

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.4...v0.18.5

v0.18.4

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.3...v0.18.4

v0.18.3

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.2...v0.18.3

v0.18.2

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.1...v0.18.2

v0.18.1

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.0...v0.18.1

v0.18.0

Compare Source

Breaking Changes

New Features

  • cache: Add TransformStripManagedFields transform func (#​2791)
  • client: Add client.WithFieldOwner to configure client-wide FieldManager (#​2771 #​2777)
  • controller: Add NewQueue option (#​2767)
  • manager: Export HTTP server runnable implementation (#​2473)
  • metrics/server: Add ListenConfig option (#​2519)

🐛 Bug Fixes

  • builder/webhook: Return error if For() is used multiple times (#​2740)
  • cache: Keep selectors when byObject.Namespaces is defaulted (#​2747)
  • cache: Prevent race when informers are started more than once (#​2758)
  • fake client: Allow fakeclient to patch CR with no resourceVersion (#​2725)
  • fake client: Do not consider an apply patch to be a strategic merge patch (#​2679)
  • manager: Prevent leader election when shutting down a non-elected manager (#​2724)
  • manager: Runnable group should check if stopped before enqueueing (#​2757)
  • restmapper: Clean restmapper cache if a version is notFound (#​2663)
  • restmapper: Fix cache invalidation (#​2687)

🌱 Others

  • ci: Add OSSF scorecard action (#​2714)
  • ci: Improve github actions dependencies versions and permissions (#​2715)
  • ci: Pin checkout action in golangci-lint action, bump checkout action, use consistent tag format (#​2729)
  • ci: Update golangci-lint to v1.57.2 (#​2708 #​2751)
  • ci: Update scorecard github action (#​2728)
  • ci: Use go-install for versioned dependencies (#​2710)
  • envtest: WaitForDefaultNamespace while starting up envtest (#​2668)
  • owners: Cleanup owners files (#​2730)
  • owners: Remove outdated testing framework approvers (#​2709)
  • predicate: Compare labels and annotations using maps.Equal (#​2705)
  • typos: Fix typo of CacheReader comment (#​2773)
  • typos: Fix typo in channel option (#​2792)
  • typos: Minor typo fixes in docstrings (#​2727)

📖 Additionally, there have been 3 contributions to our documentation. (#​2712, #​2770, #​2789)

Dependencies

Added
Changed
  • github.com/evanphx/json-patch/v5: v5.8.0 → v5.9.0
  • github.com/golang/protobuf: v1.5.3 → v1.5.4
  • github.com/google/cel-go: v0.17.7 → v0.17.8
  • github.com/onsi/ginkgo/v2: v2.14.0 → v2.17.1
  • github.com/onsi/gomega: v1.30.0 → v1.32.0
  • github.com/prometheus/client_golang: v1.18.0 → v1.16.0
  • github.com/prometheus/client_model: v0.5.0 → v0.4.0
  • github.com/prometheus/common: v0.45.0 → v0.44.0
  • golang.org/x/crypto: v0.16.0 → v0.21.0
  • golang.org/x/mod: v0.14.0 → v0.15.0
  • golang.org/x/net: v0.19.0 → v0.23.0
  • golang.org/x/sync: v0.5.0 → v0.6.0
  • golang.org/x/sys: v0.16.0 → v0.18.0
  • golang.org/x/term: v0.15.0 → v0.18.0
  • golang.org/x/tools: v0.16.1 → v0.18.0
  • google.golang.org/protobuf: v1.31.0 → v1.33.0
  • k8s.io/api: v0.29.0 → v0.30.0
  • k8s.io/apiextensions-apiserver: v0.29.0 → v0.30.0
  • k8s.io/apimachinery: v0.29.0 → v0.30.0
  • k8s.io/apiserver: v0.29.0 → v0.30.0
  • k8s.io/client-go: v0.29.0 → v0.30.0
  • k8s.io/code-generator: v0.29.0 → v0.30.0
  • k8s.io/component-base: v0.29.0 → v0.30.0
  • k8s.io/klog/v2: v2.110.1 → v2.120.1
  • k8s.io/kms: v0.29.0 → v0.30.0
  • k8s.io/kube-openapi: 2dd684a70dd376
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.28.0 → v0.29.0
  • sigs.k8s.io/yaml: v1.4.0 → v1.3.0
Removed
  • github.com/matttproud/golang_protobuf_extensions/v2: v2.0.0
  • go.uber.org/atomic: v1.10.0
  • k8s.io/gengo: 9cce18d

Thanks to all our contributors! 😊

v0.17.6

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.5...v0.17.6

v0.17.5

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.4...v0.17.5

v0.17.4

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.3...v0.17.4

v0.17.3

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.2...v0.17.3

v0.17.2

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.1...v0.17.2

v0.17.1

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.0...v0.17.1

v0.17.0

Compare Source

Breaking Changes

  • Fake client: Only set TypeMeta for unstructured (#​2633)
  • Update k8s.io/* deps to 1.29 (#​2457 #​2500 #​2553 #​2588 #​2612 #​2615 #​2621)
  • Remove apiutil.NewDiscoveryRESTMapper, use DynamicRESTMapper by default for cache (#​2611)
  • RESTMapper: don't treat non-existing GroupVersions as errors (#​2571)
  • Webhooks: Deprecate admission.Validator and admission.Defaulter (#​2639)
  • Webhooks: Limit size of AdmissionRequests to 7MB and size of TokenReviews to 1MB (#​2598)

New Features

  • Cache: Allow defining options that apply to all namespaces without explicit config (#​2528)
  • Cache: Allow to remove informers (#​2285)
  • Cache: Add option to set WatchErrorHandler on informers (#​2494)
  • Client: client.MatchingFields now supports multiple indexes (#​2512)
  • Fake client: Add flowcontrol api v1 (#​2623)
  • Reconciler: Add reconcile.ObjectReconciler (#​2592)

🐛 Bug Fixes

  • Add corev1, coordinationv1 scheme for leader election when LeaderElection manager option is true (#​2461)
  • Cache: Default namespace only for namespaced object (#​2480)
  • Client: Don't truncate large int64s in MergePatch (#​2650)
  • controllerutil: Add RemoveControllerReference and HasControllerReference func (#​2509 #​2595)
  • controllerutil: Add RemoveOwnerReference func (#​2462)
  • Dependencies: Refactor tests to drop hard otel dependency (#​2460)
  • Envtest: CRDs that aren't convertible should unset spec.conversion (#​2525)
  • Fake client: Correctly identify if patch call was made on status (#​2508)
  • Fake client: Do not update anything but status when using subresource client (#​2479)
  • Fake client: Fix returning object after status update (#​2489)
  • Fake client: Fix status subresource getting updated on Update when it is empty (#​2484)
  • Fake client: Handle unstructured status update with fake client (#​2495)
  • Manager: Fix goroutine leak (#​2527)
  • Manager: Use HTTP client from leaderElectionConfig for leader election recorder provider (#​2464)
  • RESTMapper: Return NoResourceMatchError when appropriate for backwards compatibility. (#​2472)
  • Webhook: Handle http.NoBody (#​2605)

🌱 Others

  • Client: Make client.MatchingLabels faster (#​2529)
  • Envtest: Allow to ignore scheme.Convertible check for CRDs (#​2555)
  • Envtest: Improve process cleanup (#​2560)
  • Metrics: Add 100/1000s buckets for Prometheus workqueue histograms (#​2638)
  • Metrics: Avoid dependency on apiserver/options if metrics/filters are used (#​2645)
  • Replace k8s.io/utils/pointer with k8s.io/utils/ptr (#​2488)
  • Webhooks: Cleanup webhook variable assignment (#​2604)

🌱 Dependencies

📖 Additionally, there have been 5 contributions to our documentation. (#​2497, #​2498, #​2538, #​2599, #​2602, #​2635 #​2647)

Thanks to all our contributors! 😊

v0.16.6

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.5...v0.16.6

v0.16.5

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.4...v0.16.5

v0.16.4

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.3...v0.16.4

v0.16.3

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.2...v0.16.3

v0.16.2

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.1...v0.16.2

v0.16.1

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1

v0.16.0

Compare Source

Highlights

Changes since v0.15

Breaking Changes
New Features
🐛 Bug Fixes
🌱 Others
📖 Documentation and proposals
📈 Dependencies

Thanks to all our contributors! 😊

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.16.0

v0.15.3

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.2...v0.15.3

v0.15.2

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.1...v0.15.2

v0.15.1

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1

v0.15.0

Compare Source

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

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.
  • 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 (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.
  • Refactor cache.Options, deprecate MultiNamespacedCacheBuilder (#​2157, #​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)
    • 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)
    • 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)
    • 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, #​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)
  • Add constructors for webhook/conversion, remove webhook/admission.GetDecoder() (#​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)
    • Validator and CustomValidator interfaces have been modified to allow returning warnings (#​2014)
  • Testing: Fake client status handling (#​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, #​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, #​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)
  • Update fake client deletionTimestamp behavior (#​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)
    • 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)
  • Use and offer a single dynamic lazy RESTMapper (#​2116, #​2296)
    • The following options have been removed: WithCustomMapper, WithExperimentalLazyMapper, WithLazyDiscovery, WithLimiter.
    • The DynamicRESTMapperOption type has been removed.

New Features

  • Add cross-version compatibility with client-go 1.27 (#​2223)
  • Introduce pprof server to manager (#​1943)
    • To enable, use Manager.Options.PprofBindAddress.
  • Added interceptor client to intercept calls to a client (#​2248 #​2306)
  • Add reconcile.TerminalError(...) (#​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 Fixes

  • Use correct context to cancel "list and watch" & wait for all informers to complete (#​2121)
  • Client: use passed in Cache.DisableFor option (#​2303)
  • Fix race condition in channel source (#​2286)
  • ForceOwnership should work with subresources (#​2257)
  • Fix error string in CacheReader.List (#​2256)
  • Fix a bug in multinamespaced cache implementation (#​2252)
  • Allow lazy restmapper to work with CRDs created at runtime (#​2208)
  • Set DeleteStateUnknown in DeleteEvent when obj is DeletedFinalStateUnknown (#​2212)
  • Allow to set GracefulShutdownTimeout to -1, disabling timeouts (#​2169)
  • pkg/certwatcher: Start should retry for 10s when adding files (#​2160)
  • Don't share error concurrently in test (#​2158)

🌱 Others

  • Improve unstructured serialisation (#​2147)
  • Handle TLSOpts.GetCertificate in webhook (#​2291)
  • Kind source should expose type information on timeout (#​2290)
  • Fakeclient: Add support for evictions (#​2305)
  • envtest: set default webhook options for polling (#​2289)
  • Add client.InNamespace("xyz").AsSelector() (#​2282)
  • Update golanci-lint script (#​2151)
  • Preserve unstructured object GVKs in cache.Options.ByObject (#​2246)
  • Don't call defaultOpts for MultiNamespaceCache twice (#​2234)
  • GVKForObject should handle multiple GVKs in Scheme gracefully (#​2192)
  • verify.sh: verify generate & modules (in CI) (#​2186)
  • code clean for pkg/envtest/server.go (#​2180)
  • Return an error if no httpClient is provided for NewDynamicRESTMapper (#​2178)
  • Use runtime.Unstructured interface instead of Unstructured struct (#​2168)
  • Return an error if no httpClient is provided (#​2164)
  • Return the error from rest.HTTPClientFor instead of hiding it (#​2161)
  • fix default value for cfg.Burst (#​2142)
  • Add more linters (#​2133)
  • Remove pkg/patterns (#​2132)
  • Further cleanup internal/informers (#​2130)
  • Simplify cache.objectTypeForListObject (#​2131)
  • Refactor internal cache/informers map impl (#​2103)
  • client/cache/client_cache.go should be called resources (#​2111)
  • Remove reviewers which are also approvers (#​2109)
  • Use HTTPClient to create the API Reader (#​2163)
  • Update SECURITY_CONTACTS and maintainer list (#​2318)
  • Update builtin webhook paths (#​2319)
  • Make metrics and health probe servers be Runnables (#​2275)
  • Revert: move health probes to runnable (#​2321)
  • Fix comment on MultiNamespaceCache (#​2323)
  • Cleanup webhook logging (#​2326)
  • Add certwatcher callback (#​2301)
  • Fix a bug in multinamespaced cache implementation (#​2288)

🌱 Dependencies

📖 Additionally, there have been 4 contributions to our documentation and book. (#​2203, #​2201, #​2162, #​2170)

Thanks to all our contributors! 😊

v0.14.7

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.6...v0.14.7

v0.14.6

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.5...v0.14.6

v0.14.5

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.4...v0.14.5

v0.14.4

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.3...v0.14.4

v0.14.3

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.2...v0.14.3

v0.14.2

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.1...v0.14.2

v0.14.1

Compare Source

Changes since v0.14.0

🐛 Bug Fixes

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.0...v0.14.1

v0.14.0

Compare Source

Changes since v0.13.1

Breaking Changes

New Features

  • Builder: Do not require For (#​2091)
  • support disable deepcopy on list funcion (#​2076)
  • Add cluster.NewClientFunc with options (#​2054)
  • Tidy up startup logging of kindWithCache source (#​2057)
  • Add function to get reconcileID from context (#​2056)
  • feat: add NOT predicate (#​2031)
  • Allow to provide a custom lock interface to manager (#​2027)
  • Add tls options to manager.Options (#​2023)
  • Update Go version to 1.19 (#​1986)

🐛 Bug Fixes

  • Prevent manager from getting started a second time (#​2090)
  • Missing error log for in-cluster config (#​2051)
  • Skip custom mutation handler when delete a CR (#​2049)
  • fix: improve semantics of combining cache selectorsByObject (#​2039)
  • Conversion webhook should not panic when conversion request is nil (#​1970)

🌱 Others

  • Prepare for release 0.14 (#​2100)
  • Generate files and update modules (#​2096)
  • Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0 (#​2097)
  • Bump golang.org/x/time (#​2089)
  • Update OWNERS: remove inactive members, promote fillzpp sbueringer (#​2088, #​2092)
  • Default ENVTEST version to a working one (1.24.2) (#​2081)
  • Update golangci-lint to v1.50.1 (#​2080)
  • Bump go.uber.org/zap from 1.23.0 to 1.24.0 (#​2077)
  • Bump golang.org/x/sys from 0.2.0 to 0.3.0 (#​2078)
  • Ignore Kubernetes Dependencies in Dependabot (#​2071)
  • Bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0 (#​2070)
  • Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#​2066)
  • seedling to dependabot (#​2065)
  • Bump github.com/onsi/gomega from 1.23.0 to 1.24.1 (#​2062)
  • Bump go.uber.org/zap from 1.21.0 to 1.23.0 (#​2060)
  • Bump actions/checkout from 2 to 3 (#​2059)
  • Bump golangci/golangci-lint-action from 2 to 3 (#​2058)
  • Add Dependabot for dependency management (#​2050)
  • Deprecate Webhook Server TLSMinVersion (#​2041)
  • Bump kubebuilder-release-tools to v0.2.0 (#​2012)
  • grammar: removed doubles of the word "the" (#​2006)
  • Refactor typed_client and unstructured_client to be consistent (#​1795)

📖 Additionally, there have been 4 contributions to our documentation and book. (#​2034, #​2030, #​2017, #​1992)

Thanks to all our contributors! 😊

New Contributors

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.13.1...v0.14.0

v0.13.2

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.13.1...v0.13.2

v0.13.1

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.13.0...v0.13.1

v0.13.0

Compare Source

changes since v0.12.3

Breaking Changes

  • Do not mutate the global warning handler (#​1944)
  • Add GetOptions as optional argument of client.Reader and all its implementation (#​1917)

New Features

  • Bump golangci lint to v1.49.0 (#​1988)
  • Update k8s API to v1.25 (#​1985)
  • Implement IgnoreAlreadyExists (#​1965)
  • Bump k8s v0.25.0-alpha.3 (#​1967)
  • webhook: add an option to recover from panics in handler (#​1900)
  • Provide access to admission.Request in custom validator/defaulter (#​1950)
  • komega: add EqualObject matcher (#​1833)
  • fix some typos (#​1924)
  • Allow TLS to be entirely configured on webhook server (#​1897)

🐛 Bug Fixes

  • Rearange EventBroadcaster log statement. (#​1974)
  • Fix log depth for DelegatingLogSink (#​1975)
  • Remove no-op clientgo reflector metrics (#​1946)
  • Fix webhook write response error for broken HTTP connection (#​1930)
  • Fix issue with starting multiple test envs (#​1910)
  • don't override global log in builder (#​1907)
  • skip mutation handler when received deletion verb (#​1765)
  • fix loading CRDs from multiple directories in envtests (#​1904)

Thanks to all our contributors!

v0.12.3

Compare Source

What's Changed

Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.12.2...v0.12.3

v0.12.2

Compare Source

changes since v0.12.1

New Features

  • Allow TLS to be entirely configured on webhook server (#​1914)

🐛 Bug Fixes

  • Fix webhook write response error for broken HTTP connection (#​1931)
  • Fix issue with starting multiple test envs (#​1913)
  • don't override global log in builder (#​1911)

Thanks to all our contributors!

v0.12.1

Compare Source

changes since v0.12.0

🐛 Bug Fixes

  • fix loading CRDs from multiple directories in envtests (#​1905)

Thanks to all our contributors!

v0.12.0

Compare Source

changes since v0.11.2

Breaking Changes

  • make fake client delete operations honor dry run opt (#​1873)
  • logging: align to Kubernetes structured logging, add reconcileID (#​1827)
  • leaderelection: use 'leases' as default resource lock object (#​1773)

New Features

  • certwatcher: add metrics to monitor certificate reads (#​1877)
  • Bump to k8s.io v1.24.0 (#​1885)
  • Bump to k8s.io v1.24.0-rc.1 (#​1879)
  • return a bool from AddFinalizer and RemoveFinalizer (#​1636)
  • update client-go to 1.24-beta (#​1864)
  • Add BaseContext to manager Options for use with Runnables (#​1846)
  • Upgrade k8s dependencies from 1.23.0 to 1.23.5 (#​1843)
  • Add Kubernetes Gomega extension with to make testing controllers easier (#​1767)
  • manager.go: Fix a few Options fields' go-docs (#​1818)
  • Bump go in setup-envtest (#​1777)

🐛 Bug Fixes

  • Fix panic for lazy dynamicRESTMapper (#​1891)
  • pkg: envtest: komega: fix UpdateStatus & typos in godoc (#​1862)
  • zap-time-encoding test should allow negative tz offset (#​1856)
  • returned objects of reference type should be unchangeable (#​1851)
  • prometheus/client_golang 0.11.0 -> 0.11.1 - fix DoS (#​1813)
  • Cache sync cancelled should not error with timeout (#​1808)
  • Use leader config for election events (#​1803)
  • Inject func in predicate.{And,Or} (#​1781)
  • Trim List if List GVK is provided (#​1775)
  • Cleanup if envtest controlplane fails to start (#​1750)
  • Try a temporary directory if the user cache fails (#​1800)

Thanks to all our contributors!

v0.11.2

Compare Source

changes since v0.11.1

New Features

  • Upgrade k8s dependencies from 1.23.0 to 1.23.5 (#​1853)

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 MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by autocafe

Merge request reports