Move plugin type definitions to containerd plugins package

The plugins packages defines the plugins used by containerd.
Move all the types and properties to this package.

Signed-off-by: Derek McGowan <derek@mcg.dev>
This commit is contained in:
Derek McGowan
2023-10-12 15:31:45 -07:00
parent cb969085f5
commit a80606bc2d
74 changed files with 429 additions and 314 deletions

View File

@@ -27,6 +27,7 @@ import (
"github.com/containerd/containerd/events"
"github.com/containerd/containerd/metadata"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
bolt "go.etcd.io/bbolt"
@@ -38,18 +39,18 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.ContainersService,
Requires: []plugin.Type{
plugin.EventPlugin,
plugin.MetadataPlugin,
plugins.EventPlugin,
plugins.MetadataPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
m, err := ic.Get(plugin.MetadataPlugin)
m, err := ic.Get(plugins.MetadataPlugin)
if err != nil {
return nil, err
}
ep, err := ic.Get(plugin.EventPlugin)
ep, err := ic.Get(plugins.EventPlugin)
if err != nil {
return nil, err
}

View File

@@ -23,6 +23,7 @@ import (
api "github.com/containerd/containerd/api/services/containers/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"google.golang.org/grpc"
@@ -30,17 +31,17 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "containers",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.ContainersService]
p, ok := sps[services.ContainersService]
if !ok {
return nil, errors.New("containers service not found")
}

View File

@@ -21,19 +21,20 @@ import (
"github.com/containerd/containerd/content"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/services"
"github.com/containerd/containerd/services/content/contentserver"
)
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "content",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
plugins, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}

View File

@@ -24,6 +24,7 @@ import (
"github.com/containerd/containerd/events"
"github.com/containerd/containerd/metadata"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/services"
digest "github.com/opencontainers/go-digest"
)
@@ -36,18 +37,18 @@ type store struct {
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.ContentService,
Requires: []plugin.Type{
plugin.EventPlugin,
plugin.MetadataPlugin,
plugins.EventPlugin,
plugins.MetadataPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
m, err := ic.Get(plugin.MetadataPlugin)
m, err := ic.Get(plugins.MetadataPlugin)
if err != nil {
return nil, err
}
ep, err := ic.Get(plugin.EventPlugin)
ep, err := ic.Get(plugins.EventPlugin)
if err != nil {
return nil, err
}

View File

@@ -26,6 +26,7 @@ import (
"github.com/containerd/containerd/mount"
"github.com/containerd/containerd/oci"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/services"
"github.com/containerd/typeurl/v2"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
@@ -49,14 +50,14 @@ type differ interface {
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.DiffService,
Requires: []plugin.Type{
plugin.DiffPlugin,
plugins.DiffPlugin,
},
Config: defaultDifferConfig,
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
differs, err := ic.GetByType(plugin.DiffPlugin)
differs, err := ic.GetByType(plugins.DiffPlugin)
if err != nil {
return nil, err
}

View File

@@ -22,23 +22,24 @@ import (
diffapi "github.com/containerd/containerd/api/services/diff/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/services"
"google.golang.org/grpc"
)
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "diff",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.DiffService]
p, ok := sps[services.DiffService]
if !ok {
return nil, errors.New("diff service not found")
}

View File

@@ -26,6 +26,7 @@ import (
"github.com/containerd/containerd/events"
"github.com/containerd/containerd/events/exchange"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/protobuf"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/ttrpc"
@@ -34,13 +35,13 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "events",
Requires: []plugin.Type{
plugin.EventPlugin,
plugins.EventPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
ep, err := ic.GetByID(plugin.EventPlugin, "exchange")
ep, err := ic.GetByID(plugins.EventPlugin, "exchange")
if err != nil {
return nil, err
}

View File

@@ -18,6 +18,7 @@ package healthcheck
import (
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"google.golang.org/grpc"
"google.golang.org/grpc/health"
@@ -30,7 +31,7 @@ type service struct {
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "healthcheck",
InitFn: func(*plugin.InitContext) (interface{}, error) {
return newService()

View File

@@ -28,6 +28,7 @@ import (
"github.com/containerd/containerd/metadata"
"github.com/containerd/containerd/pkg/epoch"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"github.com/containerd/log"
@@ -38,24 +39,24 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.ImagesService,
Requires: []plugin.Type{
plugin.EventPlugin,
plugin.MetadataPlugin,
plugin.GCPlugin,
plugins.EventPlugin,
plugins.MetadataPlugin,
plugins.GCPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
m, err := ic.Get(plugin.MetadataPlugin)
m, err := ic.Get(plugins.MetadataPlugin)
if err != nil {
return nil, err
}
g, err := ic.Get(plugin.GCPlugin)
g, err := ic.Get(plugins.GCPlugin)
if err != nil {
return nil, err
}
ep, err := ic.Get(plugin.EventPlugin)
ep, err := ic.Get(plugins.EventPlugin)
if err != nil {
return nil, err
}

View File

@@ -22,6 +22,7 @@ import (
imagesapi "github.com/containerd/containerd/api/services/images/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"google.golang.org/grpc"
@@ -29,17 +30,17 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "images",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.ImagesService]
p, ok := sps[services.ImagesService]
if !ok {
return nil, errors.New("images service not found")
}

View File

@@ -28,6 +28,7 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/filters"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"github.com/google/uuid"
@@ -39,7 +40,7 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.IntrospectionService,
Requires: []plugin.Type{},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {

View File

@@ -22,6 +22,7 @@ import (
api "github.com/containerd/containerd/api/services/introspection/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"google.golang.org/grpc"
@@ -29,15 +30,15 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "introspection",
Requires: []plugin.Type{plugin.ServicePlugin},
Requires: []plugin.Type{plugins.ServicePlugin},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.IntrospectionService]
p, ok := sps[services.IntrospectionService]
if !ok {
return nil, errors.New("introspection service not found")
}

View File

@@ -23,6 +23,7 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/leases"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/protobuf"
ptypes "github.com/containerd/containerd/protobuf/types"
"google.golang.org/grpc"
@@ -30,13 +31,13 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "leases",
Requires: []plugin.Type{
plugin.LeasePlugin,
plugins.LeasePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
i, err := ic.GetByID(plugin.LeasePlugin, "manager")
i, err := ic.GetByID(plugins.LeasePlugin, "manager")
if err != nil {
return nil, err
}

View File

@@ -27,6 +27,7 @@ import (
"github.com/containerd/containerd/metadata"
"github.com/containerd/containerd/namespaces"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
bolt "go.etcd.io/bbolt"
@@ -37,18 +38,18 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.NamespacesService,
Requires: []plugin.Type{
plugin.EventPlugin,
plugin.MetadataPlugin,
plugins.EventPlugin,
plugins.MetadataPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
m, err := ic.Get(plugin.MetadataPlugin)
m, err := ic.Get(plugins.MetadataPlugin)
if err != nil {
return nil, err
}
ep, err := ic.Get(plugin.EventPlugin)
ep, err := ic.Get(plugins.EventPlugin)
if err != nil {
return nil, err
}

View File

@@ -22,6 +22,7 @@ import (
api "github.com/containerd/containerd/api/services/namespaces/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"google.golang.org/grpc"
@@ -29,17 +30,17 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "namespaces",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.NamespacesService]
p, ok := sps[services.NamespacesService]
if !ok {
return nil, errors.New("namespaces service not found")
}

View File

@@ -22,6 +22,7 @@ import (
"path/filepath"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
)
// Config for the opt manager
@@ -32,7 +33,7 @@ type Config struct {
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.InternalPlugin,
Type: plugins.InternalPlugin,
ID: "opt",
Config: &Config{
Path: defaultPath,

View File

@@ -27,6 +27,7 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/events"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/protobuf"
"github.com/containerd/containerd/sandbox"
"github.com/containerd/log"
@@ -34,19 +35,19 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "sandbox-controllers",
Requires: []plugin.Type{
plugin.SandboxControllerPlugin,
plugin.EventPlugin,
plugins.SandboxControllerPlugin,
plugins.EventPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
sc, err := ic.GetByID(plugin.SandboxControllerPlugin, "local")
sc, err := ic.GetByID(plugins.SandboxControllerPlugin, "local")
if err != nil {
return nil, err
}
ep, err := ic.Get(plugin.EventPlugin)
ep, err := ic.Get(plugins.EventPlugin)
if err != nil {
return nil, err
}

View File

@@ -25,19 +25,20 @@ import (
"github.com/containerd/containerd/api/types"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/sandbox"
"github.com/containerd/log"
)
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "sandboxes",
Requires: []plugin.Type{
plugin.SandboxStorePlugin,
plugins.SandboxStorePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
sp, err := ic.GetByID(plugin.SandboxStorePlugin, "local")
sp, err := ic.GetByID(plugins.SandboxStorePlugin, "local")
if err != nil {
return nil, err
}

View File

@@ -46,6 +46,7 @@ import (
"github.com/containerd/containerd/pkg/timeout"
"github.com/containerd/containerd/platforms"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
srvconfig "github.com/containerd/containerd/services/server/config"
ssproxy "github.com/containerd/containerd/snapshots/proxy"
"github.com/containerd/containerd/sys"
@@ -127,7 +128,7 @@ func New(ctx context.Context, config *srvconfig.Config) (*Server, error) {
}
timeout.Set(key, d)
}
plugins, err := LoadPlugins(ctx, config)
loaded, err := LoadPlugins(ctx, config)
if err != nil {
return nil, err
}
@@ -223,7 +224,7 @@ func New(ctx context.Context, config *srvconfig.Config) (*Server, error) {
// Run each plugin migration for each version to ensure that migration logic is simple and
// focused on upgrading from one version at a time.
for v := version; v < srvconfig.CurrentConfigVersion; v++ {
for _, p := range plugins {
for _, p := range loaded {
if p.ConfigMigration != nil {
if err := p.ConfigMigration(ctx, v, config.Plugins); err != nil {
return nil, err
@@ -237,7 +238,7 @@ func New(ctx context.Context, config *srvconfig.Config) (*Server, error) {
log.G(ctx).WithField("t", migrationT).Warnf("Configuration migrated from version %d, use `containerd config migrate` to avoid migration", version)
}
for _, p := range plugins {
for _, p := range loaded {
id := p.URI()
log.G(ctx).WithField("type", p.Type).Infof("loading plugin %q...", id)
var mustSucceed int32
@@ -436,7 +437,7 @@ func LoadPlugins(ctx context.Context, config *srvconfig.Config) ([]*plugin.Regis
}
// load additional plugins that don't automatically register themselves
plugin.Register(&plugin.Registration{
Type: plugin.ContentPlugin,
Type: plugins.ContentPlugin,
ID: "content",
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
ic.Meta.Exports["root"] = ic.Root
@@ -456,20 +457,20 @@ func LoadPlugins(ctx context.Context, config *srvconfig.Config) ([]*plugin.Regis
)
switch pp.Type {
case string(plugin.SnapshotPlugin), "snapshot":
t = plugin.SnapshotPlugin
case string(plugins.SnapshotPlugin), "snapshot":
t = plugins.SnapshotPlugin
ssname := name
f = func(conn *grpc.ClientConn) interface{} {
return ssproxy.NewSnapshotter(ssapi.NewSnapshotsClient(conn), ssname)
}
case string(plugin.ContentPlugin), "content":
t = plugin.ContentPlugin
case string(plugins.ContentPlugin), "content":
t = plugins.ContentPlugin
f = func(conn *grpc.ClientConn) interface{} {
return csproxy.NewContentStore(csapi.NewContentClient(conn))
}
case string(plugin.DiffPlugin), "diff":
t = plugin.DiffPlugin
case string(plugins.DiffPlugin), "diff":
t = plugins.DiffPlugin
f = func(conn *grpc.ClientConn) interface{} {
return diffproxy.NewDiffApplier(diffapi.NewDiffClient(conn))
}

View File

@@ -24,6 +24,7 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/mount"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"github.com/containerd/containerd/snapshots"
@@ -33,10 +34,10 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "snapshots",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: newService,
})
@@ -50,11 +51,11 @@ type service struct {
}
func newService(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.SnapshotsService]
p, ok := sps[services.SnapshotsService]
if !ok {
return nil, errors.New("snapshots service not found")
}

View File

@@ -19,18 +19,19 @@ package snapshots
import (
"github.com/containerd/containerd/metadata"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/services"
)
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.SnapshotsService,
Requires: []plugin.Type{
plugin.MetadataPlugin,
plugins.MetadataPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
m, err := ic.Get(plugin.MetadataPlugin)
m, err := ic.Get(plugins.MetadataPlugin)
if err != nil {
return nil, err
}

View File

@@ -24,6 +24,7 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/pkg/streaming"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/protobuf"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/log"
@@ -42,13 +43,13 @@ func init() {
}
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "streaming",
Requires: []plugin.Type{
plugin.StreamingPlugin,
plugins.StreamingPlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
i, err := ic.GetByID(plugin.StreamingPlugin, "manager")
i, err := ic.GetByID(plugins.StreamingPlugin, "manager")
if err != nil {
return nil, err
}

View File

@@ -41,6 +41,7 @@ import (
"github.com/containerd/containerd/pkg/rdt"
"github.com/containerd/containerd/pkg/timeout"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
"github.com/containerd/containerd/protobuf"
"github.com/containerd/containerd/protobuf/proto"
ptypes "github.com/containerd/containerd/protobuf/types"
@@ -75,7 +76,7 @@ type Config struct {
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.ServicePlugin,
Type: plugins.ServicePlugin,
ID: services.TasksService,
Requires: tasksServiceRequires,
Config: &Config{},
@@ -88,22 +89,22 @@ func init() {
func initFunc(ic *plugin.InitContext) (interface{}, error) {
config := ic.Config.(*Config)
v2r, err := ic.GetByID(plugin.RuntimePluginV2, "task")
v2r, err := ic.GetByID(plugins.RuntimePluginV2, "task")
if err != nil {
return nil, err
}
m, err := ic.Get(plugin.MetadataPlugin)
m, err := ic.Get(plugins.MetadataPlugin)
if err != nil {
return nil, err
}
ep, err := ic.Get(plugin.EventPlugin)
ep, err := ic.Get(plugins.EventPlugin)
if err != nil {
return nil, err
}
monitor, err := ic.Get(plugin.TaskMonitorPlugin)
monitor, err := ic.Get(plugins.TaskMonitorPlugin)
if err != nil {
if !errdefs.IsNotFound(err) {
return nil, err

View File

@@ -20,10 +20,11 @@ package tasks
import (
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
)
var tasksServiceRequires = []plugin.Type{
plugin.RuntimePluginV2,
plugin.MetadataPlugin,
plugin.TaskMonitorPlugin,
plugins.RuntimePluginV2,
plugins.MetadataPlugin,
plugins.TaskMonitorPlugin,
}

View File

@@ -18,11 +18,12 @@ package tasks
import (
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
)
var tasksServiceRequires = []plugin.Type{
plugin.EventPlugin,
plugin.RuntimePluginV2,
plugin.MetadataPlugin,
plugin.TaskMonitorPlugin,
plugins.EventPlugin,
plugins.RuntimePluginV2,
plugins.MetadataPlugin,
plugins.TaskMonitorPlugin,
}

View File

@@ -20,12 +20,13 @@ package tasks
import (
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
)
var tasksServiceRequires = []plugin.Type{
plugin.EventPlugin,
plugin.RuntimePlugin,
plugin.RuntimePluginV2,
plugin.MetadataPlugin,
plugin.TaskMonitorPlugin,
plugins.EventPlugin,
plugins.RuntimePlugin,
plugins.RuntimePluginV2,
plugins.MetadataPlugin,
plugins.TaskMonitorPlugin,
}

View File

@@ -18,11 +18,12 @@ package tasks
import (
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
)
var tasksServiceRequires = []plugin.Type{
plugin.EventPlugin,
plugin.RuntimePluginV2,
plugin.MetadataPlugin,
plugin.TaskMonitorPlugin,
plugins.EventPlugin,
plugins.RuntimePluginV2,
plugins.MetadataPlugin,
plugins.TaskMonitorPlugin,
}

View File

@@ -22,6 +22,7 @@ import (
api "github.com/containerd/containerd/api/services/tasks/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
"google.golang.org/grpc"
@@ -33,17 +34,17 @@ var (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "tasks",
Requires: []plugin.Type{
plugin.ServicePlugin,
plugins.ServicePlugin,
},
InitFn: func(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.ServicePlugin)
sps, err := ic.GetByType(plugins.ServicePlugin)
if err != nil {
return nil, err
}
p, ok := plugins[services.TasksService]
p, ok := sps[services.TasksService]
if !ok {
return nil, errors.New("tasks service not found")
}

View File

@@ -24,8 +24,9 @@ import (
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/pkg/streaming"
"github.com/containerd/containerd/pkg/transfer"
"github.com/containerd/containerd/pkg/transfer/plugins"
tplugins "github.com/containerd/containerd/pkg/transfer/plugins"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/log"
"github.com/containerd/typeurl/v2"
@@ -37,11 +38,11 @@ import (
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "transfer",
Requires: []plugin.Type{
plugin.TransferPlugin,
plugin.StreamingPlugin,
plugins.TransferPlugin,
plugins.StreamingPlugin,
},
InitFn: newService,
})
@@ -54,21 +55,21 @@ type service struct {
}
func newService(ic *plugin.InitContext) (interface{}, error) {
plugins, err := ic.GetByType(plugin.TransferPlugin)
sps, err := ic.GetByType(plugins.TransferPlugin)
if err != nil {
return nil, err
}
// TODO: how to determine order?
t := make([]transfer.Transferrer, 0, len(plugins))
for _, p := range plugins {
t := make([]transfer.Transferrer, 0, len(sps))
for _, p := range sps {
i, err := p.Instance()
if err != nil {
return nil, err
}
t = append(t, i.(transfer.Transferrer))
}
sp, err := ic.GetByID(plugin.StreamingPlugin, "manager")
sp, err := ic.GetByID(plugins.StreamingPlugin, "manager")
if err != nil {
return nil, err
}
@@ -134,7 +135,7 @@ func (s *service) Transfer(ctx context.Context, req *transferapi.TransferRequest
}
func (s *service) convertAny(ctx context.Context, a typeurl.Any) (interface{}, error) {
obj, err := plugins.ResolveType(a)
obj, err := tplugins.ResolveType(a)
if err != nil {
if errdefs.IsNotFound(err) {
return typeurl.UnmarshalAny(a)

View File

@@ -21,6 +21,7 @@ import (
api "github.com/containerd/containerd/api/services/version/v1"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/plugins"
ptypes "github.com/containerd/containerd/protobuf/types"
ctrdversion "github.com/containerd/containerd/version"
"google.golang.org/grpc"
@@ -30,7 +31,7 @@ var _ api.VersionServer = &service{}
func init() {
plugin.Register(&plugin.Registration{
Type: plugin.GRPCPlugin,
Type: plugins.GRPCPlugin,
ID: "version",
InitFn: initFunc,
})