prometheus/discovery/kubernetes
Julien Pivotto da7be2b867 discovery/kubernetes: keep SD client from defeating dead-code elimination
The Kubernetes SD Discovery struct held the clientset as a
kubernetes.Interface field. Boxing the concrete *kubernetes.Clientset into
an interface marks it <UsedInIface>, so the Go linker conservatively retains
every API-group accessor and, transitively, every resource client and its
apply configurations, even though discovery only touches the core, apps,
batch, discovery and networking v1 groups.

Wrap the clientset in an adapter that captures only the used API-group
accessors as method-value closures and exposes them through a narrow
k8sClient interface. The concrete clientset now lives only inside closure
contexts, which reflection cannot traverse, so dead-code elimination drops
the unused groups. The fake clientset still satisfies the narrow interface,
so tests are unchanged.

This trims about 10 MB from each of the prometheus and promtool binaries.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-05-29 14:17:57 +02:00
..
client.go discovery/kubernetes: keep SD client from defeating dead-code elimination 2026-05-29 14:17:57 +02:00
endpoints.go Merge pull request #17774 from rexagod/16747 2026-03-04 11:07:14 +01:00
endpoints_test.go Merge pull request #17601 from joelkbiju12/ft-kubernetes-nodeready-label 2026-04-01 18:05:27 +02:00
endpointslice.go Merge pull request #18192 from rexagod/17193 2026-03-04 11:46:44 +01:00
endpointslice_test.go Merge pull request #17601 from joelkbiju12/ft-kubernetes-nodeready-label 2026-04-01 18:05:27 +02:00
ingress.go Remove copyright date from headers (#17785) 2026-01-05 13:46:21 +01:00
ingress_test.go Remove copyright date from headers (#17785) 2026-01-05 13:46:21 +01:00
kubernetes.go discovery/kubernetes: keep SD client from defeating dead-code elimination 2026-05-29 14:17:57 +02:00
kubernetes_test.go Kubernetes SD: Disable WatchListClient in tests 2026-02-10 12:39:34 -08:00
metrics.go Remove copyright date from headers (#17785) 2026-01-05 13:46:21 +01:00
node.go Merge pull request #17601 from joelkbiju12/ft-kubernetes-nodeready-label 2026-04-01 18:05:27 +02:00
node_test.go Merge pull request #17601 from joelkbiju12/ft-kubernetes-nodeready-label 2026-04-01 18:05:27 +02:00
pod.go Merge pull request #17774 from rexagod/16747 2026-03-04 11:07:14 +01:00
pod_test.go discovery/kubernetes: fix pod_test.go after makeNode signature change 2026-04-02 10:03:00 +02:00
service.go Remove copyright date from headers (#17785) 2026-01-05 13:46:21 +01:00
service_test.go Remove copyright date from headers (#17785) 2026-01-05 13:46:21 +01:00