From 938075faabe8a87833193bd59b0f1e5ae7e7c08c Mon Sep 17 00:00:00 2001 From: Quentin Albertone Date: Wed, 10 Dec 2025 18:01:12 +0100 Subject: [PATCH] chores(exoscale): update user-agent --- .../exoscale/exoscale_manager.go | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/cluster-autoscaler/cloudprovider/exoscale/exoscale_manager.go b/cluster-autoscaler/cloudprovider/exoscale/exoscale_manager.go index 759890982f54..73e03132f8b9 100644 --- a/cluster-autoscaler/cloudprovider/exoscale/exoscale_manager.go +++ b/cluster-autoscaler/cloudprovider/exoscale/exoscale_manager.go @@ -20,6 +20,7 @@ import ( "context" "errors" "fmt" + "net/http" "os" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" @@ -38,6 +39,18 @@ type exoscaleClient interface { ScaleSKSNodepool(context.Context, string, *egoscale.SKSCluster, *egoscale.SKSNodepool, int64) error } +// userAgentRoundTripper is a roundtripper which updates the user-agent header. +// This roundtripper can be deleted with egoscale v3. +type userAgentRoundTripper struct { + next http.RoundTripper +} + +func (rt *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + req.Header.Add("User-Agent", "k8s.io/cluster-auto-scaler "+egoscale.UserAgent) + + return rt.next.RoundTrip(req) +} + const defaultAPIEnvironment = "api" // Manager handles Exoscale communication and data caching of @@ -75,7 +88,12 @@ func newManager(discoveryOpts cloudprovider.NodeGroupDiscoveryOptions) (*Manager apiEnvironment = defaultAPIEnvironment } - client, err := egoscale.NewClient(apiKey, apiSecret) + client, err := egoscale.NewClient( + apiKey, apiSecret, + egoscale.ClientOptWithHTTPClient(&http.Client{ + Transport: &userAgentRoundTripper{next: http.DefaultTransport}, + }), + ) if err != nil { return nil, err }