enhance: split config from server package

The github.com/containerd/containerd/services/server has a lot of
dependencies, like content, snapshots services implementation and
docker-metrics.

For the client side, it uses the config struct from server package
to start up the containerd in background. It will import a lot of
useless packages which might be conflict with existing vendor's package.

It makes integration easier with single config package.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
This commit is contained in:
Wei Fu
2018-10-17 11:58:33 +08:00
parent 483724b0df
commit 06616dab00
13 changed files with 46 additions and 31 deletions

View File

@@ -40,6 +40,7 @@ import (
"github.com/containerd/containerd/metadata"
"github.com/containerd/containerd/pkg/dialer"
"github.com/containerd/containerd/plugin"
srvconfig "github.com/containerd/containerd/services/server/config"
"github.com/containerd/containerd/snapshots"
ssproxy "github.com/containerd/containerd/snapshots/proxy"
metrics "github.com/docker/go-metrics"
@@ -50,7 +51,7 @@ import (
)
// New creates and initializes a new containerd server
func New(ctx context.Context, config *Config) (*Server, error) {
func New(ctx context.Context, config *srvconfig.Config) (*Server, error) {
switch {
case config.Root == "":
return nil, errors.New("root must be specified")
@@ -149,7 +150,7 @@ func New(ctx context.Context, config *Config) (*Server, error) {
type Server struct {
rpc *grpc.Server
events *exchange.Exchange
config *Config
config *srvconfig.Config
plugins []*plugin.Plugin
}
@@ -211,7 +212,7 @@ func (s *Server) Stop() {
// LoadPlugins loads all plugins into containerd and generates an ordered graph
// of all plugins.
func LoadPlugins(ctx context.Context, config *Config) ([]*plugin.Registration, error) {
func LoadPlugins(ctx context.Context, config *srvconfig.Config) ([]*plugin.Registration, error) {
// load all plugins into containerd
if err := plugin.Load(filepath.Join(config.Root, "plugins")); err != nil {
return nil, err