|
|
@@ -49,7 +49,8 @@ import (
|
|
|
|
|
|
esv1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
|
|
|
smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
|
|
|
- "github.com/external-secrets/external-secrets/pkg/provider/metrics"
|
|
|
+ "github.com/external-secrets/external-secrets/pkg/constants"
|
|
|
+ "github.com/external-secrets/external-secrets/pkg/metrics"
|
|
|
"github.com/external-secrets/external-secrets/pkg/utils"
|
|
|
)
|
|
|
|
|
|
@@ -245,14 +246,14 @@ func canDelete(tags map[string]*string, err error) (bool, error) {
|
|
|
|
|
|
func (a *Azure) deleteKeyVaultKey(ctx context.Context, keyName string) error {
|
|
|
value, err := a.baseClient.GetKey(ctx, *a.provider.VaultURL, keyName, "")
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetKey, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetKey, err)
|
|
|
ok, err := canDelete(value.Tags, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("error getting key %v: %w", keyName, err)
|
|
|
}
|
|
|
if ok {
|
|
|
_, err = a.baseClient.DeleteKey(ctx, *a.provider.VaultURL, keyName)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVDeleteKey, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVDeleteKey, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("error deleting key %v: %w", keyName, err)
|
|
|
}
|
|
|
@@ -262,14 +263,14 @@ func (a *Azure) deleteKeyVaultKey(ctx context.Context, keyName string) error {
|
|
|
|
|
|
func (a *Azure) deleteKeyVaultSecret(ctx context.Context, secretName string) error {
|
|
|
value, err := a.baseClient.GetSecret(ctx, *a.provider.VaultURL, secretName, "")
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetSecret, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetSecret, err)
|
|
|
ok, err := canDelete(value.Tags, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("error getting secret %v: %w", secretName, err)
|
|
|
}
|
|
|
if ok {
|
|
|
_, err = a.baseClient.DeleteSecret(ctx, *a.provider.VaultURL, secretName)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVDeleteSecret, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVDeleteSecret, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("error deleting secret %v: %w", secretName, err)
|
|
|
}
|
|
|
@@ -279,14 +280,14 @@ func (a *Azure) deleteKeyVaultSecret(ctx context.Context, secretName string) err
|
|
|
|
|
|
func (a *Azure) deleteKeyVaultCertificate(ctx context.Context, certName string) error {
|
|
|
value, err := a.baseClient.GetCertificate(ctx, *a.provider.VaultURL, certName, "")
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetCertificate, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetCertificate, err)
|
|
|
ok, err := canDelete(value.Tags, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("error getting certificate %v: %w", certName, err)
|
|
|
}
|
|
|
if ok {
|
|
|
_, err = a.baseClient.DeleteCertificate(ctx, *a.provider.VaultURL, certName)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVDeleteCertificate, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVDeleteCertificate, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("error deleting certificate %v: %w", certName, err)
|
|
|
}
|
|
|
@@ -376,7 +377,7 @@ func canCreate(tags map[string]*string, err error) (bool, error) {
|
|
|
|
|
|
func (a *Azure) setKeyVaultSecret(ctx context.Context, secretName string, value []byte) error {
|
|
|
secret, err := a.baseClient.GetSecret(ctx, *a.provider.VaultURL, secretName, "")
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetSecret, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetSecret, err)
|
|
|
ok, err := canCreate(secret.Tags, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("cannot get secret %v: %w", secretName, err)
|
|
|
@@ -398,7 +399,7 @@ func (a *Azure) setKeyVaultSecret(ctx context.Context, secretName string, value
|
|
|
},
|
|
|
}
|
|
|
_, err = a.baseClient.SetSecret(ctx, *a.provider.VaultURL, secretName, secretParams)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetSecret, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetSecret, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("could not set secret %v: %w", secretName, err)
|
|
|
}
|
|
|
@@ -412,7 +413,7 @@ func (a *Azure) setKeyVaultCertificate(ctx context.Context, secretName string, v
|
|
|
return fmt.Errorf("value from secret is not a valid certificate: %w", err)
|
|
|
}
|
|
|
cert, err := a.baseClient.GetCertificate(ctx, *a.provider.VaultURL, secretName, "")
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetCertificate, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetCertificate, err)
|
|
|
ok, err := canCreate(cert.Tags, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("cannot get certificate %v: %w", secretName, err)
|
|
|
@@ -431,7 +432,7 @@ func (a *Azure) setKeyVaultCertificate(ctx context.Context, secretName string, v
|
|
|
},
|
|
|
}
|
|
|
_, err = a.baseClient.ImportCertificate(ctx, *a.provider.VaultURL, secretName, params)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVImportCertificate, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVImportCertificate, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("could not import certificate %v: %w", secretName, err)
|
|
|
}
|
|
|
@@ -468,7 +469,7 @@ func (a *Azure) setKeyVaultKey(ctx context.Context, secretName string, value []b
|
|
|
return fmt.Errorf("error unmarshalling key: %w", err)
|
|
|
}
|
|
|
keyFromVault, err := a.baseClient.GetKey(ctx, *a.provider.VaultURL, secretName, "")
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetKey, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetKey, err)
|
|
|
ok, err := canCreate(keyFromVault.Tags, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("cannot get key %v: %w", secretName, err)
|
|
|
@@ -487,7 +488,7 @@ func (a *Azure) setKeyVaultKey(ctx context.Context, secretName string, value []b
|
|
|
},
|
|
|
}
|
|
|
_, err = a.baseClient.ImportKey(ctx, *a.provider.VaultURL, secretName, params)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVImportKey, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVImportKey, err)
|
|
|
if err != nil {
|
|
|
return fmt.Errorf("could not import key %v: %w", secretName, err)
|
|
|
}
|
|
|
@@ -618,7 +619,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
|
|
|
// returns a SecretBundle with the secret value
|
|
|
// https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault#SecretBundle
|
|
|
secretResp, err := a.baseClient.GetSecret(ctx, *a.provider.VaultURL, secretName, ref.Version)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetSecret, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetSecret, err)
|
|
|
err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -631,7 +632,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
|
|
|
// returns a CertBundle. We return CER contents of x509 certificate
|
|
|
// see: https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault#CertificateBundle
|
|
|
certResp, err := a.baseClient.GetCertificate(ctx, *a.provider.VaultURL, secretName, ref.Version)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetCertificate, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetCertificate, err)
|
|
|
err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -645,7 +646,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
|
|
|
// azure kv returns only public keys
|
|
|
// see: https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault#KeyBundle
|
|
|
keyResp, err := a.baseClient.GetKey(ctx, *a.provider.VaultURL, secretName, ref.Version)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetKey, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetKey, err)
|
|
|
err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -663,7 +664,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
|
|
|
func (a *Azure) getSecretTags(ctx context.Context, ref esv1beta1.ExternalSecretDataRemoteRef) (map[string]*string, error) {
|
|
|
_, secretName := getObjType(ref)
|
|
|
secretResp, err := a.baseClient.GetSecret(ctx, *a.provider.VaultURL, secretName, ref.Version)
|
|
|
- metrics.ObserveAPICall(metrics.ProviderAzureKV, metrics.CallAzureKVGetSecret, err)
|
|
|
+ metrics.ObserveAPICall(constants.ProviderAzureKV, constants.CallAzureKVGetSecret, err)
|
|
|
err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|