Merge branch 'secrets-manager-plugin' into smp-error-handling
This commit is contained in:
commit
55fde1499a
5 files changed
+18
-13
No files matched your search
@@ -47,7 +47,7 @@ type RendererManager interface {
|
||||
Renderer() *Plugin
|
||||
}
|
||||
|
||||
type SecretsManagerManager interface {
|
||||
type SecretsPluginManager interface {
|
||||
// SecretsManager returns a secretsmanager plugin
|
||||
SecretsManager() *Plugin
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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)),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in new issue
Block a user