Open renovate[bot] opened 8 months ago
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
β» Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
Command failed: go get -d -t ./...
go: downloading k8s.io/api v0.29.0
go: downloading k8s.io/apimachinery v0.29.0
go: downloading sigs.k8s.io/controller-runtime v0.17.2
go: downloading github.com/go-logr/logr v1.4.1
go: downloading github.com/redhat-cop/operator-utils v1.3.4
go: downloading github.com/scylladb/go-set v1.0.2
go: downloading k8s.io/client-go v0.29.0
go: downloading github.com/onsi/ginkgo v1.16.5
go: downloading github.com/onsi/gomega v1.30.0
go: downloading github.com/gogo/protobuf v1.3.2
go: downloading github.com/google/gofuzz v1.2.0
go: downloading k8s.io/klog/v2 v2.110.1
go: downloading sigs.k8s.io/structured-merge-diff/v4 v4.4.1
go: downloading github.com/BurntSushi/toml v0.4.1
go: downloading github.com/Masterminds/sprig/v3 v3.2.2
go: downloading github.com/pkg/errors v0.9.1
go: downloading k8s.io/kubectl v0.24.0
go: downloading sigs.k8s.io/yaml v1.4.0
go: downloading k8s.io/utils v0.0.0-20230726121419-3b25d923346b
go: downloading github.com/evanphx/json-patch v5.6.0+incompatible
go: downloading github.com/evanphx/json-patch/v5 v5.8.0
go: downloading github.com/google/go-cmp v0.6.0
go: downloading golang.org/x/time v0.3.0
go: downloading golang.org/x/net v0.19.0
go: downloading k8s.io/apiextensions-apiserver v0.29.0
go: downloading github.com/go-logr/zapr v1.3.0
go: downloading go.uber.org/zap v1.26.0
go: downloading gopkg.in/inf.v0 v0.9.1
go: downloading sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
go: downloading github.com/json-iterator/go v1.1.12
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/golang/protobuf v1.5.3
go: downloading github.com/google/gnostic-models v0.6.8
go: downloading github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
go: downloading github.com/Masterminds/goutils v1.1.1
go: downloading github.com/Masterminds/semver/v3 v3.1.1
go: downloading github.com/google/uuid v1.3.0
go: downloading github.com/huandu/xstrings v1.3.1
go: downloading github.com/imdario/mergo v0.3.12
go: downloading github.com/mitchellh/copystructure v1.0.0
go: downloading github.com/shopspring/decimal v1.2.0
go: downloading github.com/spf13/cast v1.3.1
go: downloading golang.org/x/crypto v0.16.0
go: downloading gomodules.xyz/jsonpatch/v2 v2.4.0
go: downloading k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00
go: downloading golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e
go: downloading github.com/nxadm/tail v1.4.8
go: downloading golang.org/x/sys v0.16.0
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading golang.org/x/term v0.15.0
go: downloading golang.org/x/oauth2 v0.12.0
go: downloading go.uber.org/multierr v1.11.0
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading github.com/modern-go/reflect2 v1.0.2
go: downloading google.golang.org/protobuf v1.31.0
go: downloading k8s.io/component-base v0.29.0
go: downloading github.com/prometheus/client_golang v1.18.0
go: downloading github.com/mitchellh/reflectwalk v1.0.0
go: downloading github.com/spf13/pflag v1.0.5
go: downloading github.com/go-openapi/jsonreference v0.20.2
go: downloading github.com/go-openapi/swag v0.22.3
go: downloading gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
go: downloading golang.org/x/text v0.14.0
go: downloading github.com/google/gnostic v0.5.7-v3refs
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
go: downloading github.com/prometheus/client_model v0.5.0
go: downloading github.com/prometheus/common v0.45.0
go: downloading github.com/fsnotify/fsnotify v1.7.0
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/cespare/xxhash/v2 v2.2.0
go: downloading github.com/prometheus/procfs v0.12.0
go: downloading github.com/go-openapi/jsonpointer v0.19.6
go: downloading github.com/mailru/easyjson v0.7.7
go: downloading google.golang.org/appengine v1.6.7
go: downloading github.com/emicklei/go-restful v2.9.5+incompatible
go: downloading github.com/emicklei/go-restful/v3 v3.11.0
go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.4
go: downloading github.com/josharian/intern v1.0.0
go: downloading github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0
go: github.com/redhat-cop/keepalived-operator/controllers tested by
github.com/redhat-cop/keepalived-operator/controllers.test imports
sigs.k8s.io/controller-runtime/pkg/envtest/printer: cannot find module providing package sigs.k8s.io/controller-runtime/pkg/envtest/printer
This PR contains the following updates:
v0.12.2
->v0.17.2
Release Notes
kubernetes-sigs/controller-runtime (sigs.k8s.io/controller-runtime)
### [`v0.17.2`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.17.2) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.17.1...v0.17.2) #### What's Changed - β :bug: Fakeclient: Do not consider an apply patch to be a strategic merge patch by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2681](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2681) - π Fix lazy rest mapper cache invalidation by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2688](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2688) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.1...v0.17.2 ### [`v0.17.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.17.1) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.17.0...v0.17.1) ##### What's Changed - π Clean restmapper cache if a version is notFound by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2676](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2676) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.0...v0.17.1 ### [`v0.17.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.17.0) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.5...v0.17.0) #### :warning: Breaking Changes - Fake client: Only set TypeMeta for unstructured ([#2633](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2633)) - Update k8s.io/\* deps to 1.29 ([#2457](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2457) [#2500](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2500) [#2553](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2553) [#2588](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2588) [#2612](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2612) [#2615](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2615) [#2621](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2621)) - Remove apiutil.NewDiscoveryRESTMapper, use DynamicRESTMapper by default for cache ([#2611](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2611)) - RESTMapper: don't treat non-existing GroupVersions as errors ([#2571](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2571)) - Webhooks: Deprecate admission.Validator and admission.Defaulter ([#2639](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2639)) - Webhooks: Limit size of AdmissionRequests to 7MB and size of TokenReviews to 1MB ([#2598](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2598)) #### :sparkles: New Features - Cache: Allow defining options that apply to all namespaces without explicit config ([#2528](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2528)) - Cache: Allow to remove informers ([#2285](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2285)) - Cache: Add option to set WatchErrorHandler on informers ([#2494](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2494)) - Client: client.MatchingFields now supports multiple indexes ([#2512](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2512)) - Fake client: Add flowcontrol api v1 ([#2623](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2623)) - Reconciler: Add reconcile.ObjectReconciler ([#2592](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2592)) #### :bug: Bug Fixes - Add corev1, coordinationv1 scheme for leader election when LeaderElection manager option is true ([#2461](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2461)) - Cache: Default namespace only for namespaced object ([#2480](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2480)) - Client: Don't truncate large int64s in MergePatch ([#2650](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2650)) - controllerutil: Add `RemoveControllerReference` and `HasControllerReference` func ([#2509](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2509) [#2595](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2595)) - controllerutil: Add `RemoveOwnerReference` func ([#2462](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2462)) - Dependencies: Refactor tests to drop hard otel dependency ([#2460](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2460)) - Envtest: CRDs that aren't convertible should unset spec.conversion ([#2525](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2525)) - Fake client: Correctly identify if patch call was made on status ([#2508](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2508)) - Fake client: Do not update anything but status when using subresource client ([#2479](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2479)) - Fake client: Fix returning object after status update ([#2489](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2489)) - Fake client: Fix status subresource getting updated on Update when it is empty ([#2484](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2484)) - Fake client: Handle unstructured status update with fake client ([#2495](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2495)) - Manager: Fix goroutine leak ([#2527](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2527)) - Manager: Use HTTP client from leaderElectionConfig for leader election recorder provider ([#2464](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2464)) - RESTMapper: Return NoResourceMatchError when appropriate for backwards compatibility. ([#2472](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2472)) - Webhook: Handle http.NoBody ([#2605](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2605)) #### :seedling: Others - Client: Make client.MatchingLabels faster ([#2529](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2529)) - Envtest: Allow to ignore scheme.Convertible check for CRDs ([#2555](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2555)) - Envtest: Improve process cleanup ([#2560](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2560)) - Metrics: Add 100/1000s buckets for Prometheus workqueue histograms ([#2638](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2638)) - Metrics: Avoid dependency on apiserver/options if metrics/filters are used ([#2645](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2645)) - Replace k8s.io/utils/pointer with k8s.io/utils/ptr ([#2488](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2488)) - Webhooks: Cleanup webhook variable assignment ([#2604](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2604)) #### :seedling: Dependencies - Bump github.com/emicklei/go-restful/v3 from v3.9.0 to 3.11.0 ([#2507](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2507)) - Bump github.com/evanphx/json-patch from 5.6.0+incompatible to 4.12.0+incompatible ([#2501](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2501) [#2643](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2643)) - Note: We "downgraded" to v4.12.0+incompatible because it is actually newer than v5.6.0+incompatible and to make sure the code in fake client that is using this dependency behaves exactly the same as the corresponding upstream code. We recommend users to either use github.com/evanphx/json-patch@v4.12.0+incompatible or to upgrade to github.com/evanphx/json-patch/v5@v5.8.0. More details can be fou[https://github.com/kubernetes-sigs/controller-runtime/pull/2643#discussion_r1446189655](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2643#discussion_r1446189655)189655. - Bump github.com/evanphx/json-patch/v5 from 5.6.0 to 5.8.0 ([#2499](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2499) [#2650](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2650)) - Bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 ([#2561](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2561)) - Bump github.com/go-logr/logr from 1.2.4 to 1.4.1 ([#2566](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2566) [#2630](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2630)) - Bump github.com/go-logr/zapr from 1.2.4 to 1.3.0 ([#2574](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2574)) - Bump github.com/google/go-cmp from 0.5.9 to 0.6.0 ([#2545](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2545)) - Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.14.0 ([#2458](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2458) [#2514](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2514) [#2534](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2534) [#2578](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2578) [#2610](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2610) [#2651](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2651)) - Bump github.com/onsi/gomega from 1.27.10 to 1.30.0 ([#2521](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2521) [#2562](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2562) [#2568](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2568) [#2579](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2579)) - Bump github.com/prometheus/client_golang from 1.16.0 to 1.18.0 ([#2520](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2520) [#2632](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2632)) - Bump github.com/prometheus/client_model from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0 ([#2535](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2535)) - Bump go.uber.org/goleak from 1.2.1 to 1.3.0 ([#2569](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2569)) - Bump go.uber.org/zap from 1.25.0 to 1.26.0 ([#2502](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2502)) - Bump golang.org/x/net to 0.17.0 ([#2540](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2540)) - Bump golang.org/x/sys from 0.11.0 to 0.16.0 ([#2470](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2470) [#2533](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2533) [#2572](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2572) [#2597](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2597) [#2642](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2642)) - Bump k8s.io/klog/v2 from 2.100.1 to 2.110.1 ([#2573](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2573)) - Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 ([#2567](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2567)) - Bump controller-tools from v0.13.0 to v0.14.0 ([#2649](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2649)) - Bump go-apidiff from v0.5.0 to v0.8.2 ([#2517](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2517) [#2655](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2655)) - Upgrade dependencies for hack/tools and tools/ ([#2517](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2517)) - Bump kubernetes-sigs/kubebuilder-release-tools from 0.3.0 to 0.4.3 ([#2532](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2532) [#2575](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2575) [#2618](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2618)) - Bump golang version in GH actions ([#2609](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2609)) - Bump actions/checkout from 3 to 4 ([#2469](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2469)) - Bump actions/setup-go from 4 to 5 ([#2617](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2617)) - Bump envtest to 1.28.0 ([#2531](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2531)) :book: Additionally, there have been 5 contributions to our documentation. ([#2497](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2497), [#2498](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2498), [#2538](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2538), [#2599](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2599), [#2602](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2602), [#2635](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2635) [#2647](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2647)) *Thanks to all our contributors!* π ### [`v0.16.5`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.5) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.4...v0.16.5) #### What's Changed - π Fix lazy rest mapper cache invalidation by [@g-gaston](https://togithub.com/g-gaston) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2689](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2689) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.4...v0.16.5 ### [`v0.16.4`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.4) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.3...v0.16.4) #### What's Changed - :running: Make client.MatchingLabels faster by [@samuelvl](https://togithub.com/samuelvl) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2613](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2613) - π Avoid extra calls for not found resource by [@g-gaston](https://togithub.com/g-gaston) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2677](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2677) #### New Contributors - [@samuelvl](https://togithub.com/samuelvl) made their first contribution in [https://github.com/kubernetes-sigs/controller-runtime/pull/2613](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2613) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.3...v0.16.4 ### [`v0.16.3`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.3) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.2...v0.16.3) ##### What's Changed - πUpdate dependency go-restful to 3.11.0 by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2516](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2516) - π Correctly identify if patch call was made on status by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2515](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2515) - π Handle unstructured status update with fake client by [@troy0820](https://togithub.com/troy0820) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2523](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2523) - :sparkles: Cache: Allow defining options that apply to all namespaces that themselves have no explicit config by [@k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2539](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2539) - π bump golang.org/x/net to v0.17.0 by [@joelanford](https://togithub.com/joelanford) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2541](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2541) - π± Bump k8s to 1.28.3 by [@varshaprasad96](https://togithub.com/varshaprasad96) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2552](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2552) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.2...v0.16.3 ### [`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.3...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.3`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.3) [Compare Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.2...v0.15.3) #### What's Changed - π \[release-0.15] bump golang.org/x/net to v0.17.0 by [@joelanford](https://togithub.com/joelanford) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2542](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2542) - :sparkles: Bump k8s deps to 1.27.7 by [@varshaprasad96](https://togithub.com/varshaprasad96) in [https://github.com/kubernetes-sigs/controller-runtime/pull/2558](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2558) **Full Changelog**: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.2...v0.15.3 ### [`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.7...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!* π ### [`v0.14.7`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.14.7) [Compare Source](https://togithub.com/kuberConfiguration
π Schedule: Branch creation - "before 4am on Monday" (UTC), 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.