sandbox: remove SandboxersServicePlugin
Signed-off-by: Abel Feng <fshb1988@gmail.com>
This commit is contained in:
		| @@ -87,16 +87,6 @@ func WithSnapshotters(snapshotters map[string]snapshots.Snapshotter) ServicesOpt | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| // WithSandboxers sets the sandbox controllers. |  | ||||||
| func WithSandboxers(sandboxers map[string]sandbox.Controller) ServicesOpt { |  | ||||||
| 	return func(s *services) { |  | ||||||
| 		s.sandboxers = make(map[string]sandbox.Controller) |  | ||||||
| 		for n, sn := range sandboxers { |  | ||||||
| 			s.sandboxers[n] = sn |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // WithContainerClient sets the container service to use using a containers client. | // WithContainerClient sets the container service to use using a containers client. | ||||||
| func WithContainerClient(containerService containersapi.ContainersClient) ServicesOpt { | func WithContainerClient(containerService containersapi.ContainersClient) ServicesOpt { | ||||||
| 	return func(s *services) { | 	return func(s *services) { | ||||||
| @@ -249,15 +239,17 @@ func WithInMemoryServices(ic *plugin.InitContext) Opt { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| func WithSandboxersService(ic *plugin.InitContext) ClientOpt { | func WithSandboxers(ic *plugin.InitContext) Opt { | ||||||
| 	return func(c *clientOpts) error { | 	return func(c *clientOpts) error { | ||||||
| 		sandboxesPlugin, err := ic.GetByID(plugins.SandboxesServicePlugin, srv.SandboxControllersService) | 		sandboxers, err := ic.GetByType(plugins.SandboxControllerPlugin) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  | 		sc := make(map[string]sandbox.Controller) | ||||||
| 		sbs := sandboxesPlugin.(map[string]sandbox.Controller) | 		for name, p := range sandboxers { | ||||||
| 		c.services.sandboxers = sbs | 			sc[name] = p.(sandbox.Controller) | ||||||
|  | 		} | ||||||
|  | 		c.services.sandboxers = sc | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -118,6 +118,7 @@ func buildLocalContainerdClient(t *testing.T, tmpDir string) *containerd.Client | |||||||
| 		containerd.WithDefaultNamespace(constants.K8sContainerdNamespace), | 		containerd.WithDefaultNamespace(constants.K8sContainerdNamespace), | ||||||
| 		containerd.WithDefaultPlatform(platforms.Default()), | 		containerd.WithDefaultPlatform(platforms.Default()), | ||||||
| 		containerd.WithInMemoryServices(lastInitContext), | 		containerd.WithInMemoryServices(lastInitContext), | ||||||
|  | 		containerd.WithSandboxers(lastInitContext), | ||||||
| 	) | 	) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -50,6 +50,7 @@ func init() { | |||||||
| 			plugins.ServicePlugin, | 			plugins.ServicePlugin, | ||||||
| 			plugins.NRIApiPlugin, | 			plugins.NRIApiPlugin, | ||||||
| 			plugins.WarningPlugin, | 			plugins.WarningPlugin, | ||||||
|  | 			plugins.SandboxControllerPlugin, | ||||||
| 		}, | 		}, | ||||||
| 		InitFn: initCRIService, | 		InitFn: initCRIService, | ||||||
| 	}) | 	}) | ||||||
| @@ -92,7 +93,7 @@ func initCRIService(ic *plugin.InitContext) (interface{}, error) { | |||||||
| 		containerd.WithDefaultNamespace(constants.K8sContainerdNamespace), | 		containerd.WithDefaultNamespace(constants.K8sContainerdNamespace), | ||||||
| 		containerd.WithDefaultPlatform(platforms.Default()), | 		containerd.WithDefaultPlatform(platforms.Default()), | ||||||
| 		containerd.WithInMemoryServices(ic), | 		containerd.WithInMemoryServices(ic), | ||||||
| 		containerd.WithSandboxersService(ic), | 		containerd.WithSandboxers(ic), | ||||||
| 	) | 	) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("failed to create containerd client: %w", err) | 		return nil, fmt.Errorf("failed to create containerd client: %w", err) | ||||||
|   | |||||||
| @@ -138,11 +138,6 @@ func NewCRIService(config criconfig.Config, client *containerd.Client, nri *nri. | |||||||
| 		return nil, fmt.Errorf("failed to find snapshotter %q", config.ContainerdConfig.Snapshotter) | 		return nil, fmt.Errorf("failed to find snapshotter %q", config.ContainerdConfig.Snapshotter) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// TODO(dmcgowan): Get the full list directly from configured plugins |  | ||||||
| 	sbControllers := map[string]sandbox.Controller{ |  | ||||||
| 		string(criconfig.ModePodSandbox): client.SandboxController(string(criconfig.ModePodSandbox)), |  | ||||||
| 		string(criconfig.ModeShim):       client.SandboxController(string(criconfig.ModeShim)), |  | ||||||
| 	} |  | ||||||
| 	imageFSPaths := map[string]string{} | 	imageFSPaths := map[string]string{} | ||||||
| 	for _, ociRuntime := range config.ContainerdConfig.Runtimes { | 	for _, ociRuntime := range config.ContainerdConfig.Runtimes { | ||||||
| 		// Can not use `c.RuntimeSnapshotter() yet, so hard-coding here.` | 		// Can not use `c.RuntimeSnapshotter() yet, so hard-coding here.` | ||||||
| @@ -151,10 +146,8 @@ func NewCRIService(config criconfig.Config, client *containerd.Client, nri *nri. | |||||||
| 			imageFSPaths[snapshotter] = imageFSPath(config.ContainerdRootDir, snapshotter) | 			imageFSPaths[snapshotter] = imageFSPath(config.ContainerdRootDir, snapshotter) | ||||||
| 			log.L.Infof("Get image filesystem path %q for snapshotter %q", imageFSPaths[snapshotter], snapshotter) | 			log.L.Infof("Get image filesystem path %q for snapshotter %q", imageFSPaths[snapshotter], snapshotter) | ||||||
| 		} | 		} | ||||||
| 		if _, ok := sbControllers[ociRuntime.Sandboxer]; !ok { |  | ||||||
| 			sbControllers[ociRuntime.Sandboxer] = client.SandboxController(ociRuntime.Sandboxer) |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	snapshotter := config.ContainerdConfig.Snapshotter | 	snapshotter := config.ContainerdConfig.Snapshotter | ||||||
| 	imageFSPaths[snapshotter] = imageFSPath(config.ContainerdRootDir, snapshotter) | 	imageFSPaths[snapshotter] = imageFSPath(config.ContainerdRootDir, snapshotter) | ||||||
| 	log.L.Infof("Get image filesystem path %q for snapshotter %q", imageFSPaths[snapshotter], snapshotter) | 	log.L.Infof("Get image filesystem path %q for snapshotter %q", imageFSPaths[snapshotter], snapshotter) | ||||||
| @@ -217,8 +210,9 @@ func NewCRIService(config criconfig.Config, client *containerd.Client, nri *nri. | |||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	podSandboxController := client.SandboxController(string(criconfig.ModePodSandbox)).(*podsandbox.Controller) | ||||||
| 	// Initialize pod sandbox controller | 	// Initialize pod sandbox controller | ||||||
| 	sbControllers[string(criconfig.ModePodSandbox)].(*podsandbox.Controller).Init(config, c.sandboxStore, c.os, c, c.imageService, c.baseOCISpecs) | 	podSandboxController.Init(config, c.sandboxStore, c.os, c, c.imageService, c.baseOCISpecs) | ||||||
|  |  | ||||||
| 	c.nri = nri | 	c.nri = nri | ||||||
|  |  | ||||||
|   | |||||||
| @@ -67,8 +67,6 @@ const ( | |||||||
| 	ImageVerifierPlugin plugin.Type = "io.containerd.image-verifier.v1" | 	ImageVerifierPlugin plugin.Type = "io.containerd.image-verifier.v1" | ||||||
| 	// WarningPlugin implements a warning service | 	// WarningPlugin implements a warning service | ||||||
| 	WarningPlugin plugin.Type = "io.containerd.warning.v1" | 	WarningPlugin plugin.Type = "io.containerd.warning.v1" | ||||||
| 	// SandboxesServicePlugin implements sandboxes service |  | ||||||
| 	SandboxesServicePlugin plugin.Type = "io.containerd.service.sandboxes.v1" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
|   | |||||||
| @@ -31,7 +31,6 @@ import ( | |||||||
| 	"github.com/containerd/containerd/v2/plugins" | 	"github.com/containerd/containerd/v2/plugins" | ||||||
| 	"github.com/containerd/containerd/v2/protobuf" | 	"github.com/containerd/containerd/v2/protobuf" | ||||||
| 	"github.com/containerd/containerd/v2/sandbox" | 	"github.com/containerd/containerd/v2/sandbox" | ||||||
| 	"github.com/containerd/containerd/v2/services" |  | ||||||
| 	"github.com/containerd/log" | 	"github.com/containerd/log" | ||||||
| 	"github.com/containerd/plugin" | 	"github.com/containerd/plugin" | ||||||
| 	"github.com/containerd/plugin/registry" | 	"github.com/containerd/plugin/registry" | ||||||
| @@ -42,15 +41,20 @@ func init() { | |||||||
| 		Type: plugins.GRPCPlugin, | 		Type: plugins.GRPCPlugin, | ||||||
| 		ID:   "sandbox-controllers", | 		ID:   "sandbox-controllers", | ||||||
| 		Requires: []plugin.Type{ | 		Requires: []plugin.Type{ | ||||||
| 			plugins.SandboxesServicePlugin, | 			plugins.SandboxControllerPlugin, | ||||||
| 			plugins.EventPlugin, | 			plugins.EventPlugin, | ||||||
| 		}, | 		}, | ||||||
| 		InitFn: func(ic *plugin.InitContext) (interface{}, error) { | 		InitFn: func(ic *plugin.InitContext) (interface{}, error) { | ||||||
| 			i, err := ic.GetByID(plugins.SandboxesServicePlugin, services.SandboxControllersService) | 			sandboxers, err := ic.GetByType(plugins.SandboxControllerPlugin) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return nil, err | 				return nil, err | ||||||
| 			} | 			} | ||||||
| 			sc := i.(map[string]sandbox.Controller) |  | ||||||
|  | 			sc := make(map[string]sandbox.Controller) | ||||||
|  | 			for name, p := range sandboxers { | ||||||
|  | 				sc[name] = p.(sandbox.Controller) | ||||||
|  | 			} | ||||||
|  |  | ||||||
| 			ep, err := ic.GetSingle(plugins.EventPlugin) | 			ep, err := ic.GetSingle(plugins.EventPlugin) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return nil, err | 				return nil, err | ||||||
|   | |||||||
| @@ -1,46 +0,0 @@ | |||||||
| /* |  | ||||||
|    Copyright The containerd Authors. |  | ||||||
|  |  | ||||||
|    Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|    you may not use this file except in compliance with the License. |  | ||||||
|    You may obtain a copy of the License at |  | ||||||
|  |  | ||||||
|        http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  |  | ||||||
|    Unless required by applicable law or agreed to in writing, software |  | ||||||
|    distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|    See the License for the specific language governing permissions and |  | ||||||
|    limitations under the License. |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| package sandbox |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"github.com/containerd/containerd/v2/plugins" |  | ||||||
| 	"github.com/containerd/containerd/v2/sandbox" |  | ||||||
| 	"github.com/containerd/containerd/v2/services" |  | ||||||
| 	"github.com/containerd/plugin" |  | ||||||
| 	"github.com/containerd/plugin/registry" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	registry.Register(&plugin.Registration{ |  | ||||||
| 		Type: plugins.SandboxesServicePlugin, |  | ||||||
| 		ID:   services.SandboxControllersService, |  | ||||||
| 		Requires: []plugin.Type{ |  | ||||||
| 			plugins.SandboxControllerPlugin, |  | ||||||
| 		}, |  | ||||||
| 		InitFn: func(ic *plugin.InitContext) (interface{}, error) { |  | ||||||
| 			sandboxesRaw, err := ic.GetByType(plugins.SandboxControllerPlugin) |  | ||||||
| 			if err != nil { |  | ||||||
| 				return nil, err |  | ||||||
| 			} |  | ||||||
| 			sandboxers := make(map[string]sandbox.Controller) |  | ||||||
| 			for name, srv := range sandboxesRaw { |  | ||||||
| 				sandboxers[name] = srv.(sandbox.Controller) |  | ||||||
| 			} |  | ||||||
| 			return sandboxers, nil |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user
	 Abel Feng
					Abel Feng