diff --git a/pkg/plugins/ifaces.go b/pkg/plugins/ifaces.go index 92dc7565390..062cf8e9e95 100644 --- a/pkg/plugins/ifaces.go +++ b/pkg/plugins/ifaces.go @@ -47,7 +47,7 @@ type RendererManager interface { Renderer() *Plugin } -type SecretsManagerManager interface { +type SecretsPluginManager interface { // SecretsManager returns a secretsmanager plugin SecretsManager() *Plugin } diff --git a/pkg/plugins/manager/manager.go b/pkg/plugins/manager/manager.go index 099d49d0c6a..f8c631655a1 100644 --- a/pkg/plugins/manager/manager.go +++ b/pkg/plugins/manager/manager.go @@ -24,7 +24,7 @@ var _ plugins.Client = (*PluginManager)(nil) var _ plugins.Store = (*PluginManager)(nil) var _ plugins.StaticRouteResolver = (*PluginManager)(nil) var _ plugins.RendererManager = (*PluginManager)(nil) -var _ plugins.SecretsManagerManager = (*PluginManager)(nil) +var _ plugins.SecretsPluginManager = (*PluginManager)(nil) type PluginManager struct { cfg *plugins.Cfg diff --git a/pkg/server/wire.go b/pkg/server/wire.go index a08cf86c00c..39c9ed81824 100644 --- a/pkg/server/wire.go +++ b/pkg/server/wire.go @@ -149,7 +149,7 @@ var wireBasicSet = wire.NewSet( wire.Bind(new(plugins.DashboardFileStore), new(*manager.PluginManager)), wire.Bind(new(plugins.StaticRouteResolver), new(*manager.PluginManager)), wire.Bind(new(plugins.RendererManager), new(*manager.PluginManager)), - wire.Bind(new(plugins.SecretsManagerManager), new(*manager.PluginManager)), + wire.Bind(new(plugins.SecretsPluginManager), new(*manager.PluginManager)), coreplugin.ProvideCoreRegistry, loader.ProvideService, wire.Bind(new(loader.Service), new(*loader.Loader)), diff --git a/pkg/services/secrets/kvstore/kvstore.go b/pkg/services/secrets/kvstore/kvstore.go index 61ad411591d..d314ea4d909 100644 --- a/pkg/services/secrets/kvstore/kvstore.go +++ b/pkg/services/secrets/kvstore/kvstore.go @@ -16,14 +16,19 @@ const ( func ProvideService(sqlStore sqlstore.Store, secretsService secrets.Service, remoteCheck UseRemoteSecretsPluginCheck) SecretsKVStore { logger := log.New("secrets.kvstore") if remoteCheck.ShouldUseRemoteSecretsPlugin() { - logger.Info("secrets kvstore is using a remote plugin for secrets management") - return &secretsKVStorePlugin{ - secretsPlugin: remoteCheck.GetManager().SecretsManager().SecretsManager, - secretsService: secretsService, - log: logger, + logger.Debug("secrets kvstore is using a remote plugin for secrets management") + secretsPlugin, err := remoteCheck.GetPlugin() + if err != nil { + logger.Error("plugin client was nil, falling back to SQL implementation") + } else { + return &secretsKVStorePlugin{ + secretsPlugin: secretsPlugin, + secretsService: secretsService, + log: logger, + } } } - logger.Info("secrets kvstore is using the default (SQL) implementation for secrets management") + logger.Debug("secrets kvstore is using the default (SQL) implementation for secrets management") return &secretsKVStoreSQL{ sqlStore: sqlStore, secretsService: secretsService, diff --git a/pkg/services/secrets/kvstore/remote_plugin_check.go b/pkg/services/secrets/kvstore/remote_plugin_check.go index f290dac3eea..657f705d0b0 100644 --- a/pkg/services/secrets/kvstore/remote_plugin_check.go +++ b/pkg/services/secrets/kvstore/remote_plugin_check.go @@ -1,12 +1,12 @@ package kvstore import ( - "github.com/grafana/grafana/pkg/plugins/manager" + "github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin" ) type UseRemoteSecretsPluginCheck interface { ShouldUseRemoteSecretsPlugin() bool - GetManager() *manager.PluginManager + GetPlugin() (secretsmanagerplugin.SecretsManagerPlugin, error) } type OSSRemoteSecretsPluginCheck struct { @@ -21,6 +21,6 @@ func (c *OSSRemoteSecretsPluginCheck) ShouldUseRemoteSecretsPlugin() bool { return false } -func (c *OSSRemoteSecretsPluginCheck) GetManager() *manager.PluginManager { - return nil +func (c *OSSRemoteSecretsPluginCheck) GetPlugin() (secretsmanagerplugin.SecretsManagerPlugin, error) { + return nil, nil }