in pkg/providers/instance/azure_client.go [114:169]
func NewAZClient(ctx context.Context, cfg *auth.Config, env *azure.Environment) (*AZClient, error) {
defaultAzureCred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
return nil, err
}
cred := auth.NewTokenWrapper(defaultAzureCred)
opts := armopts.DefaultArmOpts()
extensionsClient, err := armcompute.NewVirtualMachineExtensionsClient(cfg.SubscriptionID, cred, opts)
if err != nil {
return nil, err
}
interfacesClient, err := armnetwork.NewInterfacesClient(cfg.SubscriptionID, cred, opts)
if err != nil {
return nil, err
}
klog.V(5).Infof("Created network interface client %v using token credential", interfacesClient)
virtualMachinesClient, err := armcompute.NewVirtualMachinesClient(cfg.SubscriptionID, cred, opts)
if err != nil {
return nil, err
}
klog.V(5).Infof("Created virtual machines client %v, using a token credential", virtualMachinesClient)
azureResourceGraphClient, err := armresourcegraph.NewClient(cred, opts)
if err != nil {
return nil, err
}
klog.V(5).Infof("Created azure resource graph client %v, using a token credential", azureResourceGraphClient)
communityImageVersionsClient, err := armcomputev5.NewCommunityGalleryImageVersionsClient(cfg.SubscriptionID, cred, opts)
if err != nil {
return nil, err
}
klog.V(5).Infof("Created image versions client %v, using a token credential", communityImageVersionsClient)
nodeImageVersionsClient := imagefamily.NewNodeImageVersionsClient(cred)
loadBalancersClient, err := armnetwork.NewLoadBalancersClient(cfg.SubscriptionID, cred, opts)
if err != nil {
return nil, err
}
klog.V(5).Infof("Created load balancers client %v, using a token credential", loadBalancersClient)
// TODO: this one is not enabled for rate limiting / throttling ...
// TODO Move this over to track 2 when skewer is migrated
skuClient := skuclient.NewSkuClient(ctx, cfg, env)
return NewAZClientFromAPI(virtualMachinesClient,
azureResourceGraphClient,
extensionsClient,
interfacesClient,
loadBalancersClient,
communityImageVersionsClient,
nodeImageVersionsClient,
skuClient), nil
}