Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update module sigs.k8s.io/controller-runtime to v0.18.2 #413

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Feb 9, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
sigs.k8s.io/controller-runtime v0.14.6 -> v0.18.2 age adoption passing confidence

Release Notes

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

v0.18.2

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.18.1...v0.18.2

v0.18.1

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@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 and book. (#​2712, #​2770, #​2789)

Dependencies

Added
  • github.com/fxamacker/cbor/v2: v2.6.0
  • github.com/x448/float16: v0.8.4
  • golang.org/x/telemetry: b75ee88
  • k8s.io/gengo/v2: 51d4e06
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.5

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.17.4...v0.17.5

v0.17.4

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.17.3...v0.17.4

v0.17.3

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.17.2...v0.17.3

v0.17.2

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.17.1...v0.17.2

v0.17.1

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@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

  • Bump github.com/emicklei/go-restful/v3 from v3.9.0 to 3.11.0 (#​2507)
  • Bump github.com/evanphx/json-patch from 5.6.0+incompatible to 4.12.0+incompatible (#​2501 #​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 fouhttps://github.com/kubernetes-sigs/controller-runtime/pull/2643#discussion_r1446189655189655.
  • Bump github.com/evanphx/json-patch/v5 from 5.6.0 to 5.8.0 (#​2499 #​2650)
  • Bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 (#​2561)
  • Bump github.com/go-logr/logr from 1.2.4 to 1.4.1 (#​2566 #​2630)
  • Bump github.com/go-logr/zapr from 1.2.4 to 1.3.0 (#​2574)
  • Bump github.com/google/go-cmp from 0.5.9 to 0.6.0 (#​2545)
  • Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.14.0 (#​2458 #​2514 #​2534 #​2578 #​2610 #​2651)
  • Bump github.com/onsi/gomega from 1.27.10 to 1.30.0 (#​2521 #​2562 #​2568 #​2579)
  • Bump github.com/prometheus/client_golang from 1.16.0 to 1.18.0 (#​2520 #​2632)
  • Bump github.com/prometheus/client_model from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0 (#​2535)
  • Bump go.uber.org/goleak from 1.2.1 to 1.3.0 (#​2569)
  • Bump go.uber.org/zap from 1.25.0 to 1.26.0 (#​2502)
  • Bump golang.org/x/net to 0.17.0 (#​2540)
  • Bump golang.org/x/sys from 0.11.0 to 0.16.0 (#​2470 #​2533 #​2572 #​2597 #​2642)
  • Bump k8s.io/klog/v2 from 2.100.1 to 2.110.1 (#​2573)
  • Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#​2567)
  • Bump controller-tools from v0.13.0 to v0.14.0 (#​2649)
  • Bump go-apidiff from v0.5.0 to v0.8.2 (#​2517 #​2655)
  • Upgrade dependencies for hack/tools and tools/ (#​2517)
  • Bump kubernetes-sigs/kubebuilder-release-tools from 0.3.0 to 0.4.3 (#​2532 #​2575 #​2618)
  • Bump golang version in GH actions (#​2609)
  • Bump actions/checkout from 3 to 4 (#​2469)
  • Bump actions/setup-go from 4 to 5 (#​2617)
  • Bump envtest to 1.28.0 (#​2531)

📖 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: kubernetes-sigs/controller-runtime@v0.16.5...v0.16.6

v0.16.5

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.16.4...v0.16.5

v0.16.4

Compare Source

What's Changed

New Contributors

Full Changelog: kubernetes-sigs/controller-runtime@v0.16.3...v0.16.4

v0.16.3

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.16.2...v0.16.3

v0.16.2

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.16.1...v0.16.2

v0.16.1

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@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: kubernetes-sigs/controller-runtime@v0.15.0...v0.16.0

v0.15.3

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.15.2...v0.15.3

v0.15.2

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@v0.15.1...v0.15.2

v0.15.1

Compare Source

What's Changed

Full Changelog: kubernetes-sigs/controller-runtime@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

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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


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

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from a team as a code owner February 9, 2024 13:11
@renovate renovate bot added the dependencies label Feb 9, 2024
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 4 times, most recently from 4fac9d6 to 563bb76 Compare February 15, 2024 21:10
@renovate renovate bot changed the title fix(deps): update module sigs.k8s.io/controller-runtime to v0.17.1 fix(deps): update module sigs.k8s.io/controller-runtime to v0.17.2 Feb 15, 2024
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 6 times, most recently from ba74aa7 to 078a751 Compare February 27, 2024 04:13
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch from 078a751 to 00c91e5 Compare February 29, 2024 23:21
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 2 times, most recently from 05e1594 to ac24d18 Compare March 27, 2024 01:42
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 2 times, most recently from 971f6b4 to ff1ab98 Compare April 8, 2024 19:06
@renovate renovate bot changed the title fix(deps): update module sigs.k8s.io/controller-runtime to v0.17.2 fix(deps): update module sigs.k8s.io/controller-runtime to v0.17.3 Apr 8, 2024
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch from ff1ab98 to 5bde1ce Compare April 9, 2024 21:47
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 2 times, most recently from a256895 to 41cdccd Compare April 24, 2024 19:43
@renovate renovate bot changed the title fix(deps): update module sigs.k8s.io/controller-runtime to v0.17.3 fix(deps): update module sigs.k8s.io/controller-runtime to v0.18.0 Apr 24, 2024
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 4 times, most recently from fb29082 to 7ee1a28 Compare May 1, 2024 23:13
@renovate renovate bot changed the title fix(deps): update module sigs.k8s.io/controller-runtime to v0.18.0 fix(deps): update module sigs.k8s.io/controller-runtime to v0.18.1 May 1, 2024
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 2 times, most recently from d7054a5 to 23f04ea Compare May 7, 2024 01:30
@renovate renovate bot changed the title fix(deps): update module sigs.k8s.io/controller-runtime to v0.18.1 fix(deps): update module sigs.k8s.io/controller-runtime to v0.18.2 May 7, 2024
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch 5 times, most recently from b1fa2a4 to bc56175 Compare May 15, 2024 05:02
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch from bc56175 to cac2f87 Compare May 17, 2024 07:47
@renovate renovate bot force-pushed the renovate/sigs.k8s.io-controller-runtime-0.x branch from cac2f87 to ba5318d Compare May 21, 2024 06:51
Copy link
Contributor Author

renovate bot commented May 21, 2024

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (v0.18.2). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/sigs.k8s.io-controller-runtime-0.x branch May 21, 2024 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant