From 61599d0a4d61262e00142b9bc4d555350d70f7a5 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 11 Mar 2022 18:26:27 +0100 Subject: [PATCH 1/2] plugin: remove unused pluginRegistryService It wrapped the regular registry service, but the ResolveRepository() function was not called anywhere. Signed-off-by: Sebastiaan van Stijn --- plugin/manager.go | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/plugin/manager.go b/plugin/manager.go index f126cd7a03..85423ce5d3 100644 --- a/plugin/manager.go +++ b/plugin/manager.go @@ -14,7 +14,6 @@ import ( "github.com/containerd/containerd/content" "github.com/containerd/containerd/content/local" - "github.com/docker/distribution/reference" "github.com/docker/docker/api/types" "github.com/docker/docker/pkg/authorization" "github.com/docker/docker/pkg/containerfs" @@ -83,25 +82,8 @@ type controller struct { timeoutInSecs int } -// pluginRegistryService ensures that all resolved repositories -// are of the plugin class. -type pluginRegistryService struct { - registry.Service -} - -func (s pluginRegistryService) ResolveRepository(name reference.Named) (repoInfo *registry.RepositoryInfo, err error) { - repoInfo, err = s.Service.ResolveRepository(name) - if repoInfo != nil { - repoInfo.Class = "plugin" - } - return -} - // NewManager returns a new plugin manager. func NewManager(config ManagerConfig) (*Manager, error) { - if config.RegistryService != nil { - config.RegistryService = pluginRegistryService{config.RegistryService} - } manager := &Manager{ config: config, } From f9f549cbe445177c1f0f4b13173e3b049674a3a1 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 11 Mar 2022 15:29:23 +0100 Subject: [PATCH 2/2] plugin: add EndpointResolver interface This defines the interface that the package expects in order to lookup pull endpoints, instead of requiring the whole registry.Service interface. Signed-off-by: Sebastiaan van Stijn --- plugin/manager.go | 7 ++++++- plugin/registry.go | 9 +++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/plugin/manager.go b/plugin/manager.go index 85423ce5d3..3296ba4e77 100644 --- a/plugin/manager.go +++ b/plugin/manager.go @@ -40,6 +40,11 @@ type Executor interface { Signal(id string, signal int) error } +// EndpointResolver provides looking up registry endpoints for pulling. +type EndpointResolver interface { + LookupPullEndpoints(hostname string) (endpoints []registry.APIEndpoint, err error) +} + func (pm *Manager) restorePlugin(p *v2.Plugin, c *controller) error { if p.IsEnabled() { return pm.restore(p, c) @@ -52,7 +57,7 @@ type eventLogger func(id, name, action string) // ManagerConfig defines configuration needed to start new manager. type ManagerConfig struct { Store *Store // remove - RegistryService registry.Service + RegistryService EndpointResolver LiveRestoreEnabled bool // TODO: remove LogPluginEvent eventLogger Root string diff --git a/plugin/registry.go b/plugin/registry.go index ad2a6b7138..e7643b6aaf 100644 --- a/plugin/registry.go +++ b/plugin/registry.go @@ -7,16 +7,13 @@ import ( "net/http" "time" - "github.com/sirupsen/logrus" - - "github.com/docker/docker/dockerversion" - - "github.com/pkg/errors" - "github.com/containerd/containerd/remotes" "github.com/containerd/containerd/remotes/docker" "github.com/docker/distribution/reference" "github.com/docker/docker/api/types" + "github.com/docker/docker/dockerversion" + "github.com/pkg/errors" + "github.com/sirupsen/logrus" ) // scope builds the correct auth scope for the registry client to authorize against