Merge pull request #138351 from pohly/apidiff-changelog

optional tracking and documentation of breaking Go API changes in client-go

Kubernetes-commit: b82bfba4efce18d0d5b6a345995f12aa4ff6edea
This commit is contained in:
Kubernetes Publisher
2026-07-02 10:54:15 +00:00
3 changed files with 139 additions and 6 deletions

133
CHANGELOG.md Normal file
View File

@@ -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.

4
go.mod
View File

@@ -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

8
go.sum
View File

@@ -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=