Browse Source

Merge pull request #119 from cnmcavoy/cnmcavoy/vault-cluster-secret-store

Add support for cluster secret store with the vault provider
paul-the-alien[bot] 5 years ago
parent
commit
682edff175
1 changed files with 16 additions and 8 deletions
  1. 16 8
      pkg/controllers/externalsecret/externalsecret_controller.go

+ 16 - 8
pkg/controllers/externalsecret/externalsecret_controller.go

@@ -182,20 +182,28 @@ func defaultSecret(es esv1alpha1.ExternalSecret) *corev1.Secret {
 }
 
 func (r *Reconciler) getStore(ctx context.Context, externalSecret *esv1alpha1.ExternalSecret) (esv1alpha1.GenericStore, error) {
-	// TODO: Implement getting ClusterSecretStore
-	var secretStore esv1alpha1.SecretStore
-
 	ref := types.NamespacedName{
-		Name:      externalSecret.Spec.SecretStoreRef.Name,
-		Namespace: externalSecret.Namespace,
+		Name: externalSecret.Spec.SecretStoreRef.Name,
+	}
+
+	if externalSecret.Spec.SecretStoreRef.Kind == esv1alpha1.ClusterSecretStoreKind {
+		var store esv1alpha1.ClusterSecretStore
+		err := r.Get(ctx, ref, &store)
+		if err != nil {
+			return nil, fmt.Errorf("could not get ClusterSecretStore %q, %w", ref.Name, err)
+		}
+
+		return &store, nil
 	}
 
-	err := r.Get(ctx, ref, &secretStore)
+	ref.Namespace = externalSecret.Namespace
+
+	var store esv1alpha1.SecretStore
+	err := r.Get(ctx, ref, &store)
 	if err != nil {
 		return nil, fmt.Errorf("could not get SecretStore %q, %w", ref.Name, err)
 	}
-
-	return &secretStore, nil
+	return &store, nil
 }
 
 func (r *Reconciler) getProviderSecretData(ctx context.Context, providerClient provider.SecretsClient, externalSecret *esv1alpha1.ExternalSecret) (map[string][]byte, error) {