chore(deps): update minor-updates (minor)
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
github.com/spf13/viper | require | minor |
v1.15.0 -> v1.16.0
|
sigs.k8s.io/controller-runtime | require | minor |
v0.14.6 -> v0.16.1
|
Release Notes
spf13/viper (github.com/spf13/viper)
v1.16.0
What's Changed
🚀
Enhancements - Sub parent inheritance by @TaylorOno in https://github.com/spf13/viper/pull/1056
- fix: fix typo by @yquansah in https://github.com/spf13/viper/pull/1523
- ci: add Go 1.20 to build matrix by @sagikazarmark in https://github.com/spf13/viper/pull/1506
- extend v.find() to handle stringToInt value types with stringToInt pflag #1435 by @vorishirne in https://github.com/spf13/viper/pull/1462
- add:viper: allow to disable internal log messages by @burgesQ in https://github.com/spf13/viper/pull/1483
- Allow ConfigParseError to unwrap by @andig in https://github.com/spf13/viper/pull/1433
🐛
Bug Fixes - fix: time.Duration slice type conversion by @UrbanskiDawid in https://github.com/spf13/viper/pull/1498
⬆ ️
Dependency Updates - build(deps): bump mheap/github-action-required-labels from 3 to 4 by @dependabot in https://github.com/spf13/viper/pull/1533
- build(deps): bump actions/setup-go from 3 to 4 by @dependabot in https://github.com/spf13/viper/pull/1526
- build(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 by @dependabot in https://github.com/spf13/viper/pull/1519
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.6 to 2.0.7 by @dependabot in https://github.com/spf13/viper/pull/1516
- build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by @dependabot in https://github.com/spf13/viper/pull/1515
- build(deps): bump github.com/spf13/afero from 1.9.3 to 1.9.5 by @dependabot in https://github.com/spf13/viper/pull/1518
- build(deps): bump github.com/sagikazarmark/crypt from 0.9.0 to 0.10.0 by @dependabot in https://github.com/spf13/viper/pull/1550
- build(deps): bump github.com/spf13/cast from 1.5.0 to 1.5.1 by @dependabot in https://github.com/spf13/viper/pull/1551
- build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 by @dependabot in https://github.com/spf13/viper/pull/1553
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.7 to 2.0.8 by @dependabot in https://github.com/spf13/viper/pull/1555
Other Changes
- Update main image to better handle dark background by @Deleplace in https://github.com/spf13/viper/pull/1532
New Contributors
- @UrbanskiDawid made their first contribution in https://github.com/spf13/viper/pull/1498
- @TaylorOno made their first contribution in https://github.com/spf13/viper/pull/1056
- @yquansah made their first contribution in https://github.com/spf13/viper/pull/1523
- @Azanul made their first contribution in https://github.com/spf13/viper/pull/1544
- @Deleplace made their first contribution in https://github.com/spf13/viper/pull/1532
- @cfabianski made their first contribution in https://github.com/spf13/viper/pull/1552
- @vorishirne made their first contribution in https://github.com/spf13/viper/pull/1462
- @burgesQ made their first contribution in https://github.com/spf13/viper/pull/1483
- @andig made their first contribution in https://github.com/spf13/viper/pull/1433
Full Changelog: https://github.com/spf13/viper/compare/v1.15.0...v1.16.0
kubernetes-sigs/controller-runtime (sigs.k8s.io/controller-runtime)
v0.16.1
What's Changed
-
🐛 Refactor tests to drop hard otel dependency by @howardjohn in https://github.com/kubernetes-sigs/controller-runtime/pull/2465 -
🌱 Bump k8s.io/apiserver from 0.28.0 to 0.28.1 by @k8s-infra-cherrypick-robot in https://github.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
Highlights
- Granular cache configuration (#2421)
- New cache option to fail on missing informer on cache reads (#2406)
- Secure metrics serving (#2407)
- Upgrade to Kubernetes 1.28 libraries (#2393, #2405, #2449)
Changes since v0.15
⚠ Breaking Changes
- Bump k8s.io/* dependencies to v1.28.0 by @sbueringer (#2393, #2405, #2449)
- Allow configuring more granular cache filtering by @alvaroaleman (#2421)
- Introduce Metrics Options & secure metrics serving by @sbueringer (#2407)
- Return an error if the continue list option is set for the cache reader by @shuheiktgw (#2439)
- Remove deprecated manager, webhook and cluster options by @sbueringer (#2422)
- Remove deprecated MultiNamespacedCacheBuilder, NewFakeClientWithScheme, controllerutil.Object, envtest.Environment.KubeAPIServerFlags & zap.Options.DestWritter by @sbueringer (#2423)
- controller builder: return error when multiple reconcilers are set by @sbueringer (#2415)
- fake client: use correct RBAC apiGroup name when deciding if to allow unconditional updates by @jaideepr97 (#2412)
- Minor improvements to godoc & code style in cache pkg by @sbueringer (#2416)
✨ New Features
- Cache: add ReaderFailOnMissingInformer option by @stevekuznetsov (#2406)
- Cache: allow non-blocking retrieval of informers by @maxsmythe (#2371)
🐛 Bug Fixes
- Add missing return statement in admission.Decoder.DecodeRaw by @lleshchi (#2433)
- fakeClient.Status().Update(...) cannot recognize resource version conflicts by @iiiceoo (#2365)
- Fix Defaulting of the User Agent by @alvaroaleman (#2435)
- Fix logs in the unstructured client by @Poor12 (#2343)
- Fix unspecified KindsFor version by @tenstad (#2346)
- Fix TerminalError(nil).Error() panic by @sheidkamp (#2438)
- hasLabels and matchingLabels step on each other by @shanshanying (#2363)
- SetLogger should work with nil sinks by @vincepri (#2367)
🌱 Others
- Use NewRateLimitingQueueWithConfig instead of deprecated NewNamedRateLimitingQueue by @sbueringer (#2411)
- Add a prefix to the stack trace printed after SetLogger timeout by @vincepri (#2357)
- Minor improvements to godoc, code style in builder pkg by @sbueringer (#2414)
- Add integration test to avoid manager.Start deadlocks by @sbueringer (#2418)
- Automatically regenerate scratch env go mod file by @sbueringer (#2413)
- Introduce a new runnable group for basic servers of the manager by @zqzten (#2337)
- Add logs around Reconcile call, change webhook logs to log level 5 by @sbueringer (#2419)
- Add action to update modules on dependabot MRs by @sbueringer (#2447, #2448)
- Optimize Add/RemoveFinalizer by @0xff-dev (#2348)
- Log warning if error and non-zero Result are returned by @sbueringer (#2451)
📖 Documentation and proposals
- Add a design for cache options configuration by @alvaroaleman (#2261)
- Add documentation to clarify the ContentType behavior by @FillZpp (#2410)
- Clarify that the reconcile.Result is ignored on non-nil error by @alvaroaleman (#2444)
- Fix typo "compatiblity" to "compatibility" by @ArshiAAkhavan (#2396)
- Update fake client doc.go to avoid the deprecated method by @sunglim (#2392)
📈 Dependencies
- Bump k8s.io/klog/v2 from 2.90.1 to 2.100.1 by @dependabot (#2294)
- Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.11.0 by @dependabot (#2368, #2376, #2384)
- Bump github.com/onsi/gomega from 1.27.7 to 1.27.8 by @dependabot (#2375, #2420)
- Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 by @dependabot (#2383)
- Bump golang.org/x/sys from 0.8.0 to 0.11.0 by @dependabot (#2377, #2401, #2441)
- Bump gomodules.xyz/jsonpatch/v2 from 2.3.0 to 2.4.0 by @dependabot (#2446)
- Bump go.uber.org/zap from 1.24.0 to 1.25.0 by @dependabot (#2440)
- Bump golangci-lint to v1.53 by @vincepri (#2398)
- Bump controller-tools to v0.13 by @sbueringer (#2450)
Thanks to all our contributors!
Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.16.0
v0.15.2
What's Changed
-
🐛 Fix TerminalError(nil).Error() panic by @sheidkamp in https://github.com/kubernetes-sigs/controller-runtime/pull/2443 -
🐛 Add missing return statement in the webhook admissions func by @k8s-infra-cherrypick-robot in https://github.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
What's Changed
- [release-0.15]
✨ Fix logs in unstructured client by @k8s-infra-cherrypick-robot in https://github.com/kubernetes-sigs/controller-runtime/pull/2344 - [release-0.15]
🐛 fix unspecified KindsFor version by @k8s-infra-cherrypick-robot in https://github.com/kubernetes-sigs/controller-runtime/pull/2347 - [release-0.15]
🐛 fakeClient.Status().Update(...) cannot recognize resource version conflicts by @k8s-infra-cherrypick-robot in https://github.com/kubernetes-sigs/controller-runtime/pull/2372 - [release-0.15]
🐛 hasLabels and matchingLabels step on each other by @k8s-infra-cherrypick-robot in https://github.com/kubernetes-sigs/controller-runtime/pull/2373 - [release-0.15]
🐛 Fix Defaulting of the User Agent by @alvaroaleman in https://github.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
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 requiresGetHTTPClient()
method which must return an already configured, non-nil,*http.Client
for the Cluster. When usingcluster.New
to create Clusters, the client is created internally if not specified as anOptions
field. -
cluster.Options.MapperProvider
field now requires a*rest.Config
and*http.Client
.
- Deprecate Component Configuration
config/v1alpha1
types (#2149, #2200)- The Component Configuration package has been unmaintained for over a year and is no longer actively developed. There are (currently) no plans to revive the package, or provide an alternative.
- Users should migrate to a custom implementation that sets
Manager.Options
directly. -
👉 Feedback requested: removal of the deprecated types and code is tracked in #895.
- Remove dependency injection functions (#2134, #2120)
- The package
pkg/inject
has been removed, this package contained long deprecated injection functions (likeInjectScheme
,InjectLogger
,InjectConfig
,InjectClient
,InjectCache
, etc.). - The runtime injection functionality has been deprecated since Controller Runtime 0.10; all of the above fields can be passed from the
Manager
to structs or interfaces that need them.
- The package
- Improve
builder
package capabilities and general UX (#2135)-
builder.Builder.Watches
signature has changed, it now takes aclient.Object
instead of asource.Source
as first argument.- For
source.Source
, useWatchesRawSource
.
- For
-
builder.Builder.WatchesMetadata
has been added to simplify watchingPartialObjectMetadata
objects.
-
- Refactor cache.Options, deprecate MultiNamespacedCacheBuilder (#2157, #2166)
-
cache.Options.Namespace
has been removed in favor ofcache.Options.Namespaces
, a slice. -
cache.Options.Resync
has been renamed toSyncPeriod
. -
cache.Options.DefaultSelector
has been removed and split in two fields:cache.Options.DefaultLabelSelector
cache.Options.DefaultFieldSelector
-
cache.Options.DefaultTransform
was added to provide a global transform function. -
cache.Options.UnsafeDisableDeepCopy
was added to provide a global toggle to disable DeepCopy of the objects from the cache before returning them to clients. - The following
[..]ByObject
field have been refactored:-
cache.Options.SelectorsByObject
has been removed, usecache.Options.ByObject[Object].Field
andcache.Options.ByObject[Object].Label
-
cache.Options.UnsafeDisableDeepCopyByObject
has been removed, usecache.Options.ByObject[Object].UnsafeDisableDeepCopy
. -
cache.Options.TransformByObject
has been removed, usecache.Options.ByObject[Object].Transform
.
-
-
cache.ObjectAll
has been removed. This type was previously used to set selectors or transformation functions for every object, use the newly introduced default global options instead.
-
- Add context to EventHandler(s) (#2139)
-
handler.EventHandler
andhandler.Funcs
interfaces requirecontext.Context
as the first parameter for every method. -
handler.MapFunc
signature has changed and now requires acontext.Context
.
-
- Add client.{GroupVersionKindFor, IsObjectNamespaced} (#2136)
- The
client.Client
interface now requires and exposes these helper functions:-
GroupVersionKindFor(Object)
which returns theschema.GroupVersionKind
for the object. -
IsObjectNamespaced(Object)
which returnstrue
if the object's GroupVersionKind is namespaced, orfalse
for global ones.
-
- The
- Remove DelegatedClient, move all related options in
client.New
(#2150)-
client.NewDelegatingClient
constructor andclient.NewDelegatingClientInput
struct have been removed.- The DelegatingClient created a Client backed by a cache, use
client.New
and setclient.Options.Cache
to customize the client's caching behavior.
- The DelegatingClient created a Client backed by a cache, use
-
cluster.NewClientFunc
has been moved toclient.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.
- Users can also keep using
-
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.
- Users can also keep using
-
manager.Options.SyncPeriod
has been deprecated in favor ofmanager.Options.Cache.SyncPeriod
. -
manager.Options.Namespace
has been deprecated in favor ofmanager.Options.Cache.Namespaces
. -
manager.Options.DryRunClient
has been deprecated in favor ofmanager.Options.Client.DryRun
. -
manager.Options.ClientDisableCacheFor
has been deprecated in favor ofmanager.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
, removewebhook/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 usewebhook/conversion.NewWebhookHandler
instead.
-
pkg/webhook/admission
: - 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
andPatch
methods now don't change the status for any such resource anymore - The status clients
Update
andPatch
methods now only change the status for any such resource
- Added a new
- 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
- The
- 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 aninit
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.
- The following options have 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
.
- To enable, use
- 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
- Bump Go to 1.20 (#2279)
- Bump github.com/go-logr/logr from v1.2.3 to v1.2.4 (#2262)
- Bump github.com/go-logr/zapr from v1.2.3 to v1.2.4 (#2320)
- Bump github.com/onsi/ginkgo/v2 from v2.6.1 to v2.9.5 (#2123 #2155 #2194 #2205 #2224 #2233 #2251 #2311 #2328)
- Bump github.com/onsi/gomega from v1.24.1 to v1.27.7 (#2106 #2137 #2156 #2206 #2227 #2232 #2260 #2340)
- Bump github.com/prometheus/client_golang from v1.14.0 to v1.15.1 (#2280 #2310)
- Bump github.com/prometheus/client_model from v0.3.0 to v0.4.0 (#2312)
- Bump go.uber.org/goleak from v1.2.0 to v1.2.1 (#2195)
- Bump golang.org/x/sys from v0.3.0 to v0.8.0 (#2124 #2225 #2270 #2309)
- Bump k8s.io dependencies to 0.27.2 (#2145 #2330 #2333)
- Bump k8s.io/klog/v2 from v2.80.1 to v2.90.1 (#2138 #2226)
- Bump sigs.k8s.io/controller-tools to v0.11.3 and apidiff to v0.5.0 (#2187)
- Use Go 1.19 in golangci-lint action (#2272)
- Bump golangci-lint to v1.52.1 (#2188 #2284)
- Bump kubebuilder-release-tools to v0.3.0 (#2126)
Thanks to all our contributors!
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.