diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..93878ddd9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,133 @@ +This file documents Go API changes in client-go. + +Go API changes are typically not included in the Kubernetes release notes, so +noteworthy Go API changes *may* be documented here. This is currently not +*required*, so consult the git history to see all changes. + +### restmapper + discovery: add context-aware APIs + +See [PR #129109](https://github.com/kubernetes/kubernetes/pull/129109). + +``` +- ./kubernetes.(*Clientset).Discovery: changed from func() k8s.io/client-go/discovery.DiscoveryInterface to func() k8s.io/client-go/discovery.DiscoveryInterfaces +- ./kubernetes.Interface.Discovery: changed from func() k8s.io/client-go/discovery.DiscoveryInterface to func() k8s.io/client-go/discovery.DiscoveryInterfaces +- ./kubernetes/fake.(*Clientset).Discovery: changed from func() k8s.io/client-go/discovery.DiscoveryInterface to func() k8s.io/client-go/discovery.DiscoveryInterfaces +``` + +### Remove v2beta1 aggregated discovery support from clients + +See [PR #138271](https://github.com/kubernetes/kubernetes/pull/138271). + +``` +- ./discovery.AcceptV2Beta1: removed +- ./discovery.SplitGroupsAndResourcesV2Beta1: removed +``` + +### Add GC to client-go TLS cache + +See [PR #136355](https://github.com/kubernetes/kubernetes/pull/136355). + +``` +- ./transport.DialerStopCh: removed +``` + +### Add metric tracking the latest cached rv of informers + +See [PR #137419](https://github.com/kubernetes/kubernetes/pull/137419). + +``` +- ./tools/cache.FIFOMetricsProvider: removed +- ./tools/cache.InformerMetricsProvider.NewStoreResourceVersionMetric: added +- ./tools/cache.InformerOptions.FIFOMetricsProvider: removed +- ./tools/cache.NewIndexer: changed from func(KeyFunc, Indexers) Indexer to func(KeyFunc, Indexers, ...StoreOption) Indexer +- ./tools/cache.NewThreadSafeStore: changed from func(Indexers, Indices) ThreadSafeStore to func(Indexers, Indices, ...ThreadSafeStoreOption) ThreadSafeStore +- ./tools/cache.SetFIFOMetricsProvider: removed +- ./tools/cache.SharedIndexInformerOptions.FIFOMetricsProvider: removed +``` + +### Rename `name` to `command` in kuberc credentialPluginAllowlist entries + +See [PR #137272](https://github.com/kubernetes/kubernetes/pull/137272). + +``` +- ./tools/clientcmd/api.AllowlistEntry.Name: removed +``` + +### Add Resource Version query and Bookmarks to thread safe store + +See [PR #134827](https://github.com/kubernetes/kubernetes/pull/134827). + +``` +- ./tools/cache.Store.Bookmark: added +- ./tools/cache.Store.LastStoreSyncResourceVersion: added +- ./tools/cache.ThreadSafeStore.Bookmark: added +- ./tools/cache.ThreadSafeStore.DeleteWithObject: added +- ./tools/cache.ThreadSafeStore.LastStoreSyncResourceVersion: added +``` + +### apimachinery + client-go + device taint eviction unit test: context-aware Start/WaitFor, waiting through channels + +See [PR #135395](https://github.com/kubernetes/kubernetes/pull/135395). + +``` +- ./informers.SharedInformerFactory.StartWithContext: added +- ./informers.SharedInformerFactory.WaitForCacheSyncWithContext: added +- ./tools/cache.Controller.HasSyncedChecker: added +- ./tools/cache.Queue.HasSyncedChecker: added +- ./tools/cache.ResourceEventHandlerRegistration.HasSyncedChecker: added +- ./tools/cache.SharedInformer.HasSyncedChecker: added +- ./tools/cache/synctrack.AsyncTracker.UpstreamHasSynced: removed +- ./tools/cache/synctrack.SingleFileTracker.UpstreamHasSynced: removed +``` + +### Add identifier-based queue depth metrics for RealFIFO + +See [PR #135782](https://github.com/kubernetes/kubernetes/pull/135782). + +``` +- ./informers/internalinterfaces.SharedInformerFactory.InformerName: added +- ./informers/internalinterfaces.SharedInformerFactory.InformerName: added +``` + +### Ensure that processing does not block queue writers in RealFIFO + +See [PR #136264](https://github.com/kubernetes/kubernetes/pull/136264). + +``` +- ./tools/cache.Pop: removed +``` + +### Add atomic replace in client-go + +See [PR #135462](https://github.com/kubernetes/kubernetes/pull/135462). + +``` +- ./tools/cache.(*RealFIFO).PopBatch: changed from func(ProcessBatchFunc) error to func(ProcessBatchFunc, PopProcessFunc) error +- ./tools/cache.QueueWithBatch.PopBatch: changed from func(ProcessBatchFunc) error to func(ProcessBatchFunc, PopProcessFunc) error +``` + +### Embed proper interface in TransformingStore to ensure DeltaFIFO and RealFIFO are implementing it + +See [PR #135580](https://github.com/kubernetes/kubernetes/pull/135580). + +``` +- ./tools/cache.Store.Get, method set of TransformingStore: removed +- ./tools/cache.Store.GetByKey, method set of TransformingStore: removed +- ./tools/cache.Store.List, method set of TransformingStore: removed +- ./tools/cache.Store.ListKeys, method set of TransformingStore: removed +- ./tools/cache.TransformingStore: no longer implements ./tools/cache.KeyLister +- ./util/consistencydetector.CheckDataConsistency: changed from func(context.Context, string, string, ListFunc[T], k8s.io/apimachinery/pkg/apis/meta/v1.ListOptions, RetrieveItemsFunc[U]) to func(context.Context, string, string, ListFunc[T], TransformFunc, k8s.io/apimachinery/pkg/apis/meta/v1.ListOptions, RetrieveItemsFunc[U]) +``` + +### Replace deprecated sets.String with sets.Set in client-go/tools/* + +See [PR #133923](https://github.com/kubernetes/kubernetes/pull/133923). + +``` +- ./tools/cache.FakeExpirationPolicy.NeverExpire: changed from k8s.io/apimachinery/pkg/util/sets.String to k8s.io/apimachinery/pkg/util/sets.Set[string] +- ./tools/cache.Index: removed +``` + +### Changes for Kubernetes <= 1.34 + +For older changes refer to the commit messages and PR descriptions. diff --git a/go.mod b/go.mod index 2d25e2a3a..77bb9dbc2 100644 --- a/go.mod +++ b/go.mod @@ -23,8 +23,8 @@ require ( golang.org/x/time v0.15.0 google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af gopkg.in/evanphx/json-patch.v4 v4.13.0 - k8s.io/api v0.0.0-20260701165530-9fa1d170fb11 - k8s.io/apimachinery v0.0.0-20260701165018-c428e39362be + k8s.io/api v0.0.0-20260702005351-d7f99214bf9a + k8s.io/apimachinery v0.0.0-20260702204942-514a87090e39 k8s.io/klog/v2 v2.140.0 k8s.io/kube-openapi v0.0.0-20260618221249-bc653b64f974 k8s.io/streaming v0.0.0-20260626172358-68009e8e6aa5 diff --git a/go.sum b/go.sum index b745ff39b..f7c297808 100644 --- a/go.sum +++ b/go.sum @@ -118,10 +118,10 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.0.0-20260701165530-9fa1d170fb11 h1:MZjAHyGujKdVOyoET5JJ88DsD/Q6TsyOvZKKsiO0aeM= -k8s.io/api v0.0.0-20260701165530-9fa1d170fb11/go.mod h1:/VjmYY4IB/HirJZVDFdiDdjF2Z3wi8EgL0xOIPVvcAk= -k8s.io/apimachinery v0.0.0-20260701165018-c428e39362be h1:7SYbrGJaF0XgQGQ3jshZvTkgRSC6lTVcnXADtdBSidQ= -k8s.io/apimachinery v0.0.0-20260701165018-c428e39362be/go.mod h1:T9tvL1Yxf+TRVyTz+Q7KtLAncCr9xxxx1zrF6g/QuR0= +k8s.io/api v0.0.0-20260702005351-d7f99214bf9a h1:QBigCm4fpHjNB8pNp6Vi4G3izDOzmkrY/Kw6QR5dv+U= +k8s.io/api v0.0.0-20260702005351-d7f99214bf9a/go.mod h1:4xx49zAGrDNz3+7mTb00m8rs+taTOwnML4GhmaKEGLk= +k8s.io/apimachinery v0.0.0-20260702204942-514a87090e39 h1:w6LmMiDJ3PrOhGIxdLs4Itjcp9nvmEycztaHbZDSu5Y= +k8s.io/apimachinery v0.0.0-20260702204942-514a87090e39/go.mod h1:T9tvL1Yxf+TRVyTz+Q7KtLAncCr9xxxx1zrF6g/QuR0= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kube-openapi v0.0.0-20260618221249-bc653b64f974 h1:JVogoTvOj6gutlx8bUwGh0e8o8L4X8nDbTLyONmoVvk=