|
|
@@ -210,6 +210,14 @@ func (a *Azure) PushSecret(ctx context.Context, value []byte, remoteRef esv1beta
|
|
|
return fmt.Errorf("not implemented")
|
|
|
}
|
|
|
|
|
|
+func parseError(err error) error {
|
|
|
+ aerr := autorest.DetailedError{}
|
|
|
+ if errors.As(err, &aerr) && aerr.StatusCode == 404 {
|
|
|
+ return esv1beta1.NoSecretError{}
|
|
|
+ }
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
// Implements store.Client.GetAllSecrets Interface.
|
|
|
// Retrieves a map[string][]byte with the secret names as key and the secret itself as the calue.
|
|
|
func (a *Azure) GetAllSecrets(ctx context.Context, ref esv1beta1.ExternalSecretFind) (map[string][]byte, error) {
|
|
|
@@ -219,6 +227,7 @@ func (a *Azure) GetAllSecrets(ctx context.Context, ref esv1beta1.ExternalSecretF
|
|
|
checkName := ref.Name != nil && len(ref.Name.RegExp) > 0
|
|
|
|
|
|
secretListIter, err := basicClient.GetSecretsComplete(context.Background(), *a.provider.VaultURL, nil)
|
|
|
+ err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -232,6 +241,7 @@ func (a *Azure) GetAllSecrets(ctx context.Context, ref esv1beta1.ExternalSecretF
|
|
|
}
|
|
|
|
|
|
secretResp, err := basicClient.GetSecret(context.Background(), *a.provider.VaultURL, secretName, "")
|
|
|
+ err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -309,6 +319,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(context.Background(), *a.provider.VaultURL, secretName, ref.Version)
|
|
|
+ err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -320,6 +331,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(context.Background(), *a.provider.VaultURL, secretName, ref.Version)
|
|
|
+ err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -332,6 +344,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(context.Background(), *a.provider.VaultURL, secretName, ref.Version)
|
|
|
+ err = parseError(err)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|