in internal/loader/configuration_client_manager.go [95:143]
func NewConfigurationClientManager(ctx context.Context, provider acpv1.AzureAppConfigurationProvider) (ClientManager, error) {
manager := &ConfigurationClientManager{
ReplicaDiscoveryEnabled: provider.Spec.ReplicaDiscoveryEnabled,
LoadBalancingEnabled: provider.Spec.LoadBalancingEnabled,
lastSuccessfulEndpoint: "",
}
var err error
var staticClient *azappconfig.Client
if provider.Spec.ConnectionStringReference != nil {
connectionString, err := getConnectionStringParameter(ctx, types.NamespacedName{Namespace: provider.Namespace, Name: *provider.Spec.ConnectionStringReference})
if err != nil {
return nil, fmt.Errorf("fail to retrieve connection string from secret '%s': %s", *provider.Spec.ConnectionStringReference, err.Error())
}
if manager.endpoint, err = parseConnectionString(connectionString, EndpointSection); err != nil {
return nil, err
}
if err = verifyEndpointFromConnectionString(manager.endpoint); err != nil {
return nil, err
}
if manager.secret, err = parseConnectionString(connectionString, SecretSection); err != nil {
return nil, err
}
if manager.id, err = parseConnectionString(connectionString, IdSection); err != nil {
return nil, err
}
if staticClient, err = azappconfig.NewClientFromConnectionString(connectionString, clientOptionWithModuleInfo); err != nil {
return nil, err
}
} else {
if manager.credential, err = CreateTokenCredential(ctx, provider.Spec.Auth, provider.Namespace); err != nil {
return nil, err
}
if staticClient, err = azappconfig.NewClient(*provider.Spec.Endpoint, manager.credential, clientOptionWithModuleInfo); err != nil {
return nil, err
}
manager.endpoint = *provider.Spec.Endpoint
}
manager.validDomain = getValidDomain(manager.endpoint)
manager.StaticClientWrappers = []*ConfigurationClientWrapper{{
Endpoint: manager.endpoint,
Client: staticClient,
BackOffEndTime: metav1.Time{},
FailedAttempts: 0,
}}
return manager, nil
}