@@ -34,6 +34,16 @@ import (
3434 "sync/atomic"
3535 "time"
3636
37+ "github.com/containerd/ttrpc"
38+ "github.com/docker/go-metrics"
39+ grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
40+ grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
41+ "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
42+ "google.golang.org/grpc"
43+ "google.golang.org/grpc/backoff"
44+ "google.golang.org/grpc/credentials"
45+ "google.golang.org/grpc/credentials/insecure"
46+
3747 csapi "github.com/containerd/containerd/api/services/content/v1"
3848 diffapi "github.com/containerd/containerd/api/services/diff/v1"
3949 ssapi "github.com/containerd/containerd/api/services/snapshots/v1"
@@ -44,22 +54,14 @@ import (
4454 diffproxy "github.com/containerd/containerd/diff/proxy"
4555 "github.com/containerd/containerd/events/exchange"
4656 "github.com/containerd/containerd/log"
57+ "github.com/containerd/containerd/pkg/deprecation"
4758 "github.com/containerd/containerd/pkg/dialer"
4859 "github.com/containerd/containerd/pkg/timeout"
4960 "github.com/containerd/containerd/plugin"
5061 srvconfig "github.com/containerd/containerd/services/server/config"
5162 "github.com/containerd/containerd/services/warning"
5263 ssproxy "github.com/containerd/containerd/snapshots/proxy"
5364 "github.com/containerd/containerd/sys"
54- "github.com/containerd/ttrpc"
55- "github.com/docker/go-metrics"
56- grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
57- grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
58- "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
59- "google.golang.org/grpc"
60- "google.golang.org/grpc/backoff"
61- "google.golang.org/grpc/credentials"
62- "google.golang.org/grpc/credentials/insecure"
6365)
6466
6567// CreateTopLevelDirectories creates the top-level root and state directories.
@@ -320,7 +322,9 @@ func recordConfigDeprecations(ctx context.Context, config *srvconfig.Config, set
320322 return
321323 }
322324
323- _ = warn // TODO(samuelkarp): placeholder for future use
325+ if config .PluginDir != "" {
326+ warn .Emit (ctx , deprecation .GoPluginLibrary )
327+ }
324328}
325329
326330// Server is the containerd main daemon
@@ -427,8 +431,11 @@ func LoadPlugins(ctx context.Context, config *srvconfig.Config) ([]*plugin.Regis
427431 if path == "" {
428432 path = filepath .Join (config .Root , "plugins" )
429433 }
430- if err := plugin .Load (path ); err != nil {
434+ if count , err := plugin .Load (path ); err != nil {
431435 return nil , err
436+ } else if count > 0 || config .PluginDir != "" {
437+ config .PluginDir = path
438+ log .G (ctx ).Warningf ("loaded %d dynamic plugins. `go_plugin` is deprecated, please use `external plugins` instead" , count )
432439 }
433440 // load additional plugins that don't automatically register themselves
434441 plugin .Register (& plugin.Registration {
0 commit comments