@@ -23,11 +23,13 @@ import (
2323 "github.com/Azure/azure-sdk-for-go/sdk/azcore"
2424 "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud"
2525 "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
26+ "github.com/Azure/azure-sdk-for-go/sdk/tracing/azotel"
2627 "github.com/pkg/errors"
2728 corev1 "k8s.io/api/core/v1"
2829 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2930 "k8s.io/apimachinery/pkg/types"
3031 infrav1 "sigs.k8s.io/cluster-api-provider-azure/api/v1beta1"
32+ "sigs.k8s.io/cluster-api-provider-azure/pkg/ot"
3133 "sigs.k8s.io/cluster-api-provider-azure/util/tele"
3234 "sigs.k8s.io/controller-runtime/pkg/client"
3335)
@@ -81,6 +83,12 @@ func (p *AzureCredentialsProvider) GetTokenCredential(ctx context.Context, resou
8183 var authErr error
8284 var cred azcore.TokenCredential
8385
86+ otelTP , err := ot .OTLPTracerProvider (ctx )
87+ if err != nil {
88+ return nil , err
89+ }
90+ tracingProvider := azotel .NewTracingProvider (otelTP , nil )
91+
8492 switch p .Identity .Spec .Type {
8593 case infrav1 .WorkloadIdentity :
8694 azwiCredOptions , err := NewWorkloadIdentityCredentialOptions ().
@@ -90,6 +98,7 @@ func (p *AzureCredentialsProvider) GetTokenCredential(ctx context.Context, resou
9098 if err != nil {
9199 return nil , errors .Wrapf (err , "failed to setup azwi options for identity %s" , p .Identity .Name )
92100 }
101+ azwiCredOptions .ClientOptions .TracingProvider = tracingProvider
93102 cred , authErr = NewWorkloadIdentityCredential (azwiCredOptions )
94103
95104 case infrav1 .ManualServicePrincipal :
@@ -102,6 +111,7 @@ func (p *AzureCredentialsProvider) GetTokenCredential(ctx context.Context, resou
102111 }
103112 options := azidentity.ClientSecretCredentialOptions {
104113 ClientOptions : azcore.ClientOptions {
114+ TracingProvider : tracingProvider ,
105115 Cloud : cloud.Configuration {
106116 ActiveDirectoryAuthorityHost : activeDirectoryEndpoint ,
107117 Services : map [cloud.ServiceName ]cloud.ServiceConfiguration {
@@ -124,10 +134,17 @@ func (p *AzureCredentialsProvider) GetTokenCredential(ctx context.Context, resou
124134 if err != nil {
125135 return nil , errors .Wrap (err , "failed to parse certificate data" )
126136 }
127- cred , authErr = azidentity .NewClientCertificateCredential (p .GetTenantID (), p .Identity .Spec .ClientID , certs , key , nil )
137+ cred , authErr = azidentity .NewClientCertificateCredential (p .GetTenantID (), p .Identity .Spec .ClientID , certs , key , & azidentity.ClientCertificateCredentialOptions {
138+ ClientOptions : azcore.ClientOptions {
139+ TracingProvider : tracingProvider ,
140+ },
141+ })
128142
129143 case infrav1 .UserAssignedMSI :
130144 options := azidentity.ManagedIdentityCredentialOptions {
145+ ClientOptions : azcore.ClientOptions {
146+ TracingProvider : tracingProvider ,
147+ },
131148 ID : azidentity .ClientID (p .Identity .Spec .ClientID ),
132149 }
133150 cred , authErr = azidentity .NewManagedIdentityCredential (& options )
0 commit comments