From 6ecbabc5199c5e1a571588e1b2718fe0a86195df Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 18 Mar 2026 14:24:10 +0100 Subject: [PATCH] client-go: expose all discovery methods The underlying implementation has both. Exposing that in the result of Discovery() makes it easier for consumers to call the WithContext methods because they don't need to wrap with ToDiscoveryInterfaceWithContext(). This is a breaking Go API change because tests which implement the interface have to be updated. Kubernetes-commit: d8f70b87cec6888420e778bca1ea8022a6617140 --- discovery/discovery_client.go | 6 ++++++ kubernetes/clientset.go | 4 ++-- kubernetes/fake/clientset_generated.go | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/discovery/discovery_client.go b/discovery/discovery_client.go index 25d1cc57c..355c70193 100644 --- a/discovery/discovery_client.go +++ b/discovery/discovery_client.go @@ -109,6 +109,12 @@ type DiscoveryInterfaceWithContext interface { WithLegacyWithContext(ctx context.Context) DiscoveryInterfaceWithContext } +// DiscoveryInterfaces combines both interface variants. +type DiscoveryInterfaces interface { + DiscoveryInterface + DiscoveryInterfaceWithContext +} + func ToDiscoveryInterfaceWithContext(i DiscoveryInterface) DiscoveryInterfaceWithContext { if i == nil { return nil diff --git a/kubernetes/clientset.go b/kubernetes/clientset.go index b1e8817b4..11d1026e5 100644 --- a/kubernetes/clientset.go +++ b/kubernetes/clientset.go @@ -81,7 +81,7 @@ import ( ) type Interface interface { - Discovery() discovery.DiscoveryInterface + Discovery() discovery.DiscoveryInterfaces AdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface AdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface AdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface @@ -461,7 +461,7 @@ func (c *Clientset) StoragemigrationV1beta1() storagemigrationv1beta1.Storagemig } // Discovery retrieves the DiscoveryClient -func (c *Clientset) Discovery() discovery.DiscoveryInterface { +func (c *Clientset) Discovery() discovery.DiscoveryInterfaces { if c == nil { return nil } diff --git a/kubernetes/fake/clientset_generated.go b/kubernetes/fake/clientset_generated.go index 7171f79a5..96a6d9fab 100644 --- a/kubernetes/fake/clientset_generated.go +++ b/kubernetes/fake/clientset_generated.go @@ -176,7 +176,7 @@ type Clientset struct { tracker testing.ObjectTracker } -func (c *Clientset) Discovery() discovery.DiscoveryInterface { +func (c *Clientset) Discovery() discovery.DiscoveryInterfaces { return c.discovery }