Browse Source

Implemented ValidateStore function for Alibaba Provider

Signed-off-by: Idowu Emehinola <hydeenoble39@gmail.com>
Idowu Emehinola 3 years ago
parent
commit
28a7299c8b

+ 4 - 4
pkg/provider/akeyless/akeyless_test.go

@@ -21,8 +21,8 @@ import (
 	"testing"
 
 	esv1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
-	fakeakeyless "github.com/external-secrets/external-secrets/pkg/provider/akeyless/fake"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
+	fakeakeyless "github.com/external-secrets/external-secrets/pkg/provider/akeyless/fake"
 )
 
 type akeylessTestCase struct {
@@ -139,15 +139,15 @@ func TestValidateStore(t *testing.T) {
 						SecretRef: esv1beta1.AkeylessAuthSecretRef{
 							AccessID: esmeta.SecretKeySelector{
 								Name: "accessId",
-								Key: "key-1",
+								Key:  "key-1",
 							},
 							AccessType: esmeta.SecretKeySelector{
 								Name: "accessId",
-								Key: "key-1",
+								Key:  "key-1",
 							},
 							AccessTypeParam: esmeta.SecretKeySelector{
 								Name: "accessId",
-								Key: "key-1",
+								Key:  "key-1",
 							},
 						},
 					},

+ 21 - 0
pkg/provider/alibaba/kms.go

@@ -208,6 +208,27 @@ func (kms *KeyManagementService) Validate() (esv1beta1.ValidationResult, error)
 }
 
 func (kms *KeyManagementService) ValidateStore(store esv1beta1.GenericStore) error {
+	storeSpec := store.GetSpec()
+	alibabaSpec := storeSpec.Provider.Alibaba
+
+	regionID := alibabaSpec.RegionID
+
+	if regionID == "" {
+		return fmt.Errorf("missing alibaba region")
+	}
+
+	accessKeyID := alibabaSpec.Auth.SecretRef.AccessKeyID
+	err := utils.ValidateSecretSelector(store, accessKeyID)
+	if err != nil {
+		return err
+	}
+
+	accessKeySecret := alibabaSpec.Auth.SecretRef.AccessKeySecret
+	err = utils.ValidateSecretSelector(store, accessKeySecret)
+	if err != nil {
+		return err
+	}
+
 	return nil
 }
 

+ 32 - 0
pkg/provider/alibaba/kms_test.go

@@ -25,6 +25,7 @@ import (
 	kmssdk "github.com/aliyun/alibaba-cloud-sdk-go/services/kms"
 
 	esv1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
+	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	fakesm "github.com/external-secrets/external-secrets/pkg/provider/alibaba/fake"
 )
 
@@ -186,6 +187,37 @@ func TestGetSecretMap(t *testing.T) {
 	}
 }
 
+func TestValidateStore(t *testing.T) {
+	kms := KeyManagementService{}
+
+	store := &esv1beta1.SecretStore{
+		Spec: esv1beta1.SecretStoreSpec{
+			Provider: &esv1beta1.SecretStoreProvider{
+				Alibaba: &esv1beta1.AlibabaProvider{
+					RegionID: "region-1",
+					Auth: &esv1beta1.AlibabaAuth{
+						SecretRef: esv1beta1.AlibabaAuthSecretRef{
+							AccessKeyID: esmeta.SecretKeySelector{
+								Name: "accessKeyID",
+								Key:  "key-1",
+							},
+							AccessKeySecret: esmeta.SecretKeySelector{
+								Name: "accessKeySecret",
+								Key:  "key-1",
+							},
+						},
+					},
+				},
+			},
+		},
+	}
+
+	err := kms.ValidateStore(store)
+	if err != nil {
+		t.Errorf(err.Error())
+	}
+}
+
 func ErrorContains(out error, want string) bool {
 	if out == nil {
 		return want == ""