Browse Source

chore(previder): Update Previder Provider dependency and fix ReadOnly token (#5327)

* Updated vault-cli to 0.1.3 and fixed ReadOnly token logic when validating the SecretStore in the Previder Provider

Signed-off-by: Gijs Middelkamp <g.middelkamp@previder.nl>

* Fixed unit test

Signed-off-by: Gijs Middelkamp <g.middelkamp@previder.nl>

* Made Validate method stateless. Moved setting the TokenType to the NewClient method

Signed-off-by: Gijs Middelkamp <g.middelkamp@previder.nl>

---------

Signed-off-by: Gijs Middelkamp <g.middelkamp@previder.nl>
Signed-off-by: Gijs Middelkamp <17021438+gkwmiddelkamp@users.noreply.github.com>
Gijs Middelkamp 6 months ago
parent
commit
a09dd7012c
2 changed files with 15 additions and 3 deletions
  1. 6 0
      pkg/provider/previder/client_test.go
  2. 9 3
      pkg/provider/previder/provider.go

+ 6 - 0
pkg/provider/previder/client_test.go

@@ -46,3 +46,9 @@ func (v *PreviderVaultFakeClient) GetSecrets() ([]model.Secret, error) {
 	}
 	return secretList, nil
 }
+
+func (v *PreviderVaultFakeClient) GetTokenInfo() (*model.Token, error) {
+	token := new(model.Token)
+	token.TokenType = "ReadOnly"
+	return token, nil
+}

+ 9 - 3
pkg/provider/previder/provider.go

@@ -21,7 +21,6 @@ import (
 	"context"
 	"errors"
 	"fmt"
-
 	previderclient "github.com/previder/vault-cli/pkg"
 	corev1 "k8s.io/api/core/v1"
 	"sigs.k8s.io/controller-runtime/pkg/client"
@@ -40,6 +39,7 @@ var _ esv1.Provider = &SecretManager{}
 // SecretManager implements the esv1.Provider interface for Previder Vault.
 type SecretManager struct {
 	VaultClient previderclient.PreviderVaultClient
+	TokenType   string
 }
 
 func init() {
@@ -66,6 +66,13 @@ func (s *SecretManager) NewClient(ctx context.Context, store esv1.GenericStore,
 	if err != nil {
 		return nil, err
 	}
+
+	tokenInfo, err := s.VaultClient.GetTokenInfo()
+	if err != nil {
+		return nil, err
+	}
+	s.TokenType = tokenInfo.TokenType
+
 	return s, nil
 }
 
@@ -122,11 +129,10 @@ func (s *SecretManager) SecretExists(context.Context, esv1.PushSecretRemoteRef)
 
 // Validate checks if the Vault client can connect and retrieve secrets.
 func (s *SecretManager) Validate() (esv1.ValidationResult, error) {
-	_, err := s.VaultClient.GetSecrets()
+	_, err := s.VaultClient.GetTokenInfo()
 	if err != nil {
 		return esv1.ValidationResultError, err
 	}
-
 	return esv1.ValidationResultReady, nil
 }