From b4976ecb170b4674c505636686008e165fa24634 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Sun, 8 Jul 2018 22:35:24 -0700 Subject: [PATCH] vSphere: set vCenter client UserAgent Setting the client UserAgent makes it easier to identify vCenter sessions used by the vSphere Cloud Provider. This is useful to remove sessions that have leaked, such as when a VCP process goes away without calling Logout(). And to test that VCP properly re-authenticates when a session is removed. Example use: govc session.ls | grep kubernetes-cloudprovider | awk '{print $1}' | xargs -n1 govc session.rm --- pkg/cloudprovider/providers/vsphere/vclib/connection.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/cloudprovider/providers/vsphere/vclib/connection.go b/pkg/cloudprovider/providers/vsphere/vclib/connection.go index 379b68df088..be4c5e3f538 100644 --- a/pkg/cloudprovider/providers/vsphere/vclib/connection.go +++ b/pkg/cloudprovider/providers/vsphere/vclib/connection.go @@ -20,6 +20,7 @@ import ( "context" "crypto/tls" "encoding/pem" + "fmt" "net" neturl "net/url" "sync" @@ -29,6 +30,7 @@ import ( "github.com/vmware/govmomi/sts" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/soap" + "k8s.io/kubernetes/pkg/version" ) // VSphereConnection contains information for connecting to vCenter @@ -179,6 +181,9 @@ func (connection *VSphereConnection) NewClient(ctx context.Context) (*vim25.Clie return nil, err } + k8sVersion := version.Get().GitVersion + client.UserAgent = fmt.Sprintf("kubernetes-cloudprovider/%s", k8sVersion) + err = connection.login(ctx, client) if err != nil { return nil, err