Plugins: Add ability to run backend plugins in containers (#110534)

* add client cfg for containers

* remove unused code

* add field for skip host env for proto client

* add docker to Swagger ignore

* add to enterprise swagger gen

* undo go.mod changes

* pass container image

* propagate container image field
This commit is contained in:
Will Browne
2025-09-10 11:12:23 +01:00
committed by GitHub
parent 5c6fd5e5af
commit 0a7e0e5298
14 changed files with 150 additions and 20 deletions
@@ -4,7 +4,7 @@ import (
"context"
"errors"
trace "go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace"
"google.golang.org/grpc"
"github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2"
@@ -44,12 +44,19 @@ type protoClient struct {
}
type ProtoClientOpts struct {
PluginJSON plugins.JSONData
ExecutablePath string
ExecutableArgs []string
Env []string
Logger log.Logger
Tracer trace.Tracer
PluginJSON plugins.JSONData
ExecutablePath string
ExecutableArgs []string
Env []string
ContainerMode ContainerModeOpts
SkipHostEnvVars bool
Logger log.Logger
Tracer trace.Tracer
}
type ContainerModeOpts struct {
Enabled bool
Image string
}
func NewProtoClient(opts ProtoClientOpts) (ProtoClient, error) {
@@ -60,6 +67,11 @@ func NewProtoClient(opts ProtoClientOpts) (ProtoClient, error) {
executablePath: opts.ExecutablePath,
executableArgs: opts.ExecutableArgs,
versionedPlugins: pluginSet,
containerMode: containerModeOpts{
enabled: opts.ContainerMode.Enabled,
image: opts.ContainerMode.Image,
},
skipHostEnvVars: opts.SkipHostEnvVars,
},
opts.Logger,
opts.Tracer,