diff --git a/cmd/containerd-shim-runc-v2/main.go b/cmd/containerd-shim-runc-v2/main.go index d2173c86e..c94942e3a 100644 --- a/cmd/containerd-shim-runc-v2/main.go +++ b/cmd/containerd-shim-runc-v2/main.go @@ -20,10 +20,13 @@ package main import ( - v2 "github.com/containerd/containerd/runtime/v2/runc/v2" + "context" + + "github.com/containerd/containerd/runtime/v2/runc/manager" + _ "github.com/containerd/containerd/runtime/v2/runc/task/plugin" "github.com/containerd/containerd/runtime/v2/shim" ) func main() { - shim.Run("io.containerd.runc.v2", v2.New) + shim.RunManager(context.Background(), manager.NewShimManager("io.containerd.runc.v2")) } diff --git a/runtime/v2/runc/task/plugin/plugin_linux.go b/runtime/v2/runc/task/plugin/plugin_linux.go new file mode 100644 index 000000000..603a27459 --- /dev/null +++ b/runtime/v2/runc/task/plugin/plugin_linux.go @@ -0,0 +1,47 @@ +/* + 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 plugin + +import ( + "github.com/containerd/containerd/pkg/shutdown" + "github.com/containerd/containerd/plugin" + "github.com/containerd/containerd/runtime/v2/runc/task" + "github.com/containerd/containerd/runtime/v2/shim" +) + +func init() { + plugin.Register(&plugin.Registration{ + Type: plugin.TTRPCPlugin, + ID: "task", + Requires: []plugin.Type{ + plugin.EventPlugin, + plugin.InternalPlugin, + }, + InitFn: func(ic *plugin.InitContext) (interface{}, error) { + pp, err := ic.GetByID(plugin.EventPlugin, "publisher") + if err != nil { + return nil, err + } + ss, err := ic.GetByID(plugin.InternalPlugin, "shutdown") + if err != nil { + return nil, err + } + return task.NewTaskService(ic.Context, pp.(shim.Publisher), ss.(shutdown.Service)) + }, + }) + +} diff --git a/runtime/v2/runc/tasks/service.go b/runtime/v2/runc/task/service.go similarity index 99% rename from runtime/v2/runc/tasks/service.go rename to runtime/v2/runc/task/service.go index 5659affa2..a1b1c468a 100644 --- a/runtime/v2/runc/tasks/service.go +++ b/runtime/v2/runc/task/service.go @@ -17,7 +17,7 @@ limitations under the License. */ -package tasks +package task import ( "context" diff --git a/runtime/v2/runc/v2/service.go b/runtime/v2/runc/v2/service.go index 17ab82075..6dd8d6d14 100644 --- a/runtime/v2/runc/v2/service.go +++ b/runtime/v2/runc/v2/service.go @@ -24,7 +24,7 @@ import ( "github.com/containerd/containerd/pkg/shutdown" "github.com/containerd/containerd/runtime/v2/runc/manager" - "github.com/containerd/containerd/runtime/v2/runc/tasks" + "github.com/containerd/containerd/runtime/v2/runc/task" "github.com/containerd/containerd/runtime/v2/shim" shimapi "github.com/containerd/containerd/runtime/v2/task" ) @@ -67,7 +67,7 @@ func New(ctx context.Context, id string, publisher shim.Publisher, fn func()) (s return nil }) } - ts, err := tasks.NewTaskService(ctx, publisher, sd) + ts, err := task.NewTaskService(ctx, publisher, sd) if err != nil { return nil, err }