Browse Source

chore: force interface validation

Docs 4 years ago
parent
commit
f73c8be5af

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

@@ -31,6 +31,10 @@ const (
 	defaultAPIUrl = "https://api.akeyless.io"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &Akeyless{}
+var _ esv1beta1.Provider = &Provider{}
+
 // Provider satisfies the provider interface.
 type Provider struct{}
 

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

@@ -51,6 +51,10 @@ type Client struct {
 	accessKey []byte
 }
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &KeyManagementService{}
+var _ esv1beta1.Provider = &KeyManagementService{}
+
 type KeyManagementService struct {
 	Client SMInterface
 }

+ 3 - 0
pkg/provider/aws/parameterstore/parameterstore.go

@@ -31,6 +31,9 @@ import (
 	"github.com/external-secrets/external-secrets/pkg/utils"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &ParameterStore{}
+
 // ParameterStore is a provider for AWS ParameterStore.
 type ParameterStore struct {
 	sess   *session.Session

+ 3 - 0
pkg/provider/aws/provider.go

@@ -29,6 +29,9 @@ import (
 	"github.com/external-secrets/external-secrets/pkg/utils"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.Provider = &Provider{}
+
 // Provider satisfies the provider interface.
 type Provider struct{}
 

+ 3 - 0
pkg/provider/aws/secretsmanager/secretsmanager.go

@@ -32,6 +32,9 @@ import (
 	"github.com/external-secrets/external-secrets/pkg/utils"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &SecretsManager{}
+
 // SecretsManager is a provider for AWS SecretsManager.
 type SecretsManager struct {
 	sess   *session.Session

+ 4 - 0
pkg/provider/azure/keyvault/keyvault.go

@@ -79,6 +79,10 @@ const (
 	errMissingSAAnnotation    = "missing service account annotation: %s"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &Azure{}
+var _ esv1beta1.Provider = &Azure{}
+
 // interface to keyvault.BaseClient.
 type SecretClient interface {
 	GetKey(ctx context.Context, vaultBaseURL string, keyName string, keyVersion string) (result keyvault.KeyBundle, err error)

+ 6 - 3
pkg/provider/gcp/secretmanager/secretsmanager.go

@@ -41,9 +41,8 @@ import (
 )
 
 const (
-	CloudPlatformRole = "https://www.googleapis.com/auth/cloud-platform"
-	defaultVersion    = "latest"
-
+	CloudPlatformRole                         = "https://www.googleapis.com/auth/cloud-platform"
+	defaultVersion                            = "latest"
 	errGCPSMStore                             = "received invalid GCPSM SecretStore resource"
 	errUnableGetCredentials                   = "unable to get credentials: %w"
 	errClientClose                            = "unable to close SecretManager client: %w"
@@ -84,6 +83,10 @@ type GoogleSecretManagerClient interface {
 */
 var useMu = sync.Mutex{}
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &ProviderGCP{}
+var _ esv1beta1.Provider = &ProviderGCP{}
+
 // ProviderGCP is a provider for GCP Secret Manager.
 type ProviderGCP struct {
 	projectID           string

+ 4 - 0
pkg/provider/gitlab/gitlab.go

@@ -41,6 +41,10 @@ const (
 	errJSONSecretUnmarshal                    = "unable to unmarshal secret: %w"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &Gitlab{}
+var _ esv1beta1.Provider = &Gitlab{}
+
 type Client interface {
 	GetVariable(pid interface{}, key string, opt *gitlab.GetProjectVariableOptions, options ...gitlab.RequestOptionFunc) (*gitlab.ProjectVariable, *gitlab.Response, error)
 }

+ 4 - 0
pkg/provider/ibm/provider.go

@@ -47,6 +47,10 @@ const (
 	errJSONSecretUnmarshal                   = "unable to unmarshal secret: %w"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &providerIBM{}
+var _ esv1beta1.Provider = &providerIBM{}
+
 type SecretManagerClient interface {
 	GetSecret(getSecretOptions *sm.GetSecretOptions) (result *sm.GetSecret, response *core.DetailedResponse, err error)
 }

+ 4 - 0
pkg/provider/kubernetes/kubernetes.go

@@ -41,6 +41,10 @@ const (
 	errEmptyKey                            = "key %s found but empty"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &ProviderKubernetes{}
+var _ esv1beta1.Provider = &ProviderKubernetes{}
+
 type KClient interface {
 	Get(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Secret, error)
 }

+ 4 - 0
pkg/provider/oracle/oracle.go

@@ -52,6 +52,10 @@ const (
 	errUnexpectedContent                     = "unexpected secret bundle content"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &VaultManagementService{}
+var _ esv1beta1.Provider = &VaultManagementService{}
+
 type VaultManagementService struct {
 	Client VMInterface
 	vault  string

+ 4 - 0
pkg/provider/vault/vault.go

@@ -103,6 +103,10 @@ const (
 	errInvalidTokenRef   = "invalid Auth.TokenSecretRef: %w"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &client{}
+var _ esv1beta1.Provider = &connector{}
+
 type Client interface {
 	NewRequest(method, requestPath string) *vault.Request
 	RawRequestWithContext(ctx context.Context, r *vault.Request) (*vault.Response, error)

+ 4 - 0
pkg/provider/webhook/webhook.go

@@ -37,6 +37,10 @@ import (
 	"github.com/external-secrets/external-secrets/pkg/template/v2"
 )
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &WebHook{}
+var _ esv1beta1.Provider = &Provider{}
+
 // Provider satisfies the provider interface.
 type Provider struct{}
 

+ 4 - 0
pkg/provider/yandex/lockbox/lockbox.go

@@ -45,6 +45,10 @@ type iamTokenKey struct {
 	privateKeyHash   string
 }
 
+// https://github.com/external-secrets/external-secrets/issues/644
+var _ esv1beta1.SecretsClient = &lockboxSecretsClient{}
+var _ esv1beta1.Provider = &lockboxProvider{}
+
 // lockboxProvider is a provider for Yandex Lockbox.
 type lockboxProvider struct {
 	yandexCloudCreator client.YandexCloudCreator