diff --git a/daemon/cluster/executor/backend.go b/daemon/cluster/executor/backend.go index 17ede3341a..7107dfed66 100644 --- a/daemon/cluster/executor/backend.go +++ b/daemon/cluster/executor/backend.go @@ -56,4 +56,5 @@ type Backend interface { GetRepository(context.Context, reference.NamedTagged, *types.AuthConfig) (distribution.Repository, bool, error) LookupImage(name string) (*types.ImageInspect, error) PluginManager() *plugin.Manager + PluginGetter() *plugin.Store } diff --git a/daemon/cluster/noderunner.go b/daemon/cluster/noderunner.go index dc24ff115c..558a4e8a96 100644 --- a/daemon/cluster/noderunner.go +++ b/daemon/cluster/noderunner.go @@ -108,6 +108,7 @@ func (n *nodeRunner) start(conf nodeStartConfig) error { ElectionTick: 3, UnlockKey: conf.lockKey, AutoLockManagers: conf.autolock, + PluginGetter: n.cluster.config.Backend.PluginGetter(), } if conf.availability != "" { avail, ok := swarmapi.NodeSpec_Availability_value[strings.ToUpper(string(conf.availability))] diff --git a/daemon/daemon.go b/daemon/daemon.go index eaa85d482d..c7a331b48c 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -1289,6 +1289,11 @@ func (daemon *Daemon) PluginManager() *plugin.Manager { // set up before daemon return daemon.pluginManager } +// PluginGetter returns current pluginStore associated with the daemon +func (daemon *Daemon) PluginGetter() *plugin.Store { + return daemon.PluginStore +} + // CreateDaemonRoot creates the root for the daemon func CreateDaemonRoot(config *Config) error { // get the canonical path to the Docker root directory