in azureappconfiguration/keyvault.go [97:115]
func (r *keyVaultReferenceResolver) getSecretClient(vaultURL string) (secretClient, error) {
if client, ok := r.clients.Load(vaultURL); ok {
return client.(secretClient), nil
}
client, err := azsecrets.NewClient(vaultURL, r.credential, nil)
if err != nil {
return nil, fmt.Errorf("failed to create Key Vault client: %w", err)
}
// Store the client - if concurrent call already stored a client, use the existing one
storedClient, loaded := r.clients.LoadOrStore(vaultURL, client)
if loaded {
// Another goroutine already created and stored a client
return storedClient.(secretClient), nil
}
return client, nil
}