@@ -33,6 +33,7 @@ import (
3333 "github.com/containerd/plugin/registry"
3434
3535 "github.com/containerd/containerd/v2/core/events"
36+ "github.com/containerd/containerd/v2/core/mount"
3637 "github.com/containerd/containerd/v2/core/sandbox"
3738 "github.com/containerd/containerd/v2/pkg/protobuf"
3839 "github.com/containerd/containerd/v2/plugins"
@@ -104,7 +105,6 @@ func (s *controllerService) getController(name string) (sandbox.Controller, erro
104105
105106func (s * controllerService ) Create (ctx context.Context , req * api.ControllerCreateRequest ) (* api.ControllerCreateResponse , error ) {
106107 log .G (ctx ).WithField ("req" , req ).Debug ("create sandbox" )
107- // TODO: Rootfs
108108 ctrl , err := s .getController (req .Sandboxer )
109109 if err != nil {
110110 return nil , errgrpc .ToGRPC (err )
@@ -115,12 +115,17 @@ func (s *controllerService) Create(ctx context.Context, req *api.ControllerCreat
115115 } else {
116116 sb = sandbox.Sandbox {ID : req .GetSandboxID ()}
117117 }
118- err = ctrl .Create (ctx , sb , sandbox .WithOptions (req .GetOptions ()))
118+ err = ctrl .Create (ctx , sb ,
119+ sandbox .WithOptions (req .GetOptions ()),
120+ sandbox .WithNetNSPath (req .GetNetnsPath ()),
121+ sandbox .WithRootFS (mount .FromProto (req .GetRootfs ())),
122+ sandbox .WithAnnotations (req .GetAnnotations ()),
123+ )
119124 if err != nil {
120125 return & api.ControllerCreateResponse {}, errgrpc .ToGRPC (err )
121126 }
122127
123- if err := s .publisher .Publish (ctx , "sandboxes/create" , & eventtypes.SandboxCreate {
128+ if err := s .publisher .Publish (ctx , "/ sandboxes/create" , & eventtypes.SandboxCreate {
124129 SandboxID : req .GetSandboxID (),
125130 }); err != nil {
126131 return & api.ControllerCreateResponse {}, errgrpc .ToGRPC (err )
@@ -142,7 +147,7 @@ func (s *controllerService) Start(ctx context.Context, req *api.ControllerStartR
142147 return & api.ControllerStartResponse {}, errgrpc .ToGRPC (err )
143148 }
144149
145- if err := s .publisher .Publish (ctx , "sandboxes/start" , & eventtypes.SandboxStart {
150+ if err := s .publisher .Publish (ctx , "/ sandboxes/start" , & eventtypes.SandboxStart {
146151 SandboxID : req .GetSandboxID (),
147152 }); err != nil {
148153 return & api.ControllerStartResponse {}, errgrpc .ToGRPC (err )
@@ -176,7 +181,7 @@ func (s *controllerService) Wait(ctx context.Context, req *api.ControllerWaitReq
176181 return & api.ControllerWaitResponse {}, errgrpc .ToGRPC (err )
177182 }
178183
179- if err := s .publisher .Publish (ctx , "sandboxes/exit" , & eventtypes.SandboxExit {
184+ if err := s .publisher .Publish (ctx , "/ sandboxes/exit" , & eventtypes.SandboxExit {
180185 SandboxID : req .GetSandboxID (),
181186 ExitStatus : exitStatus .ExitStatus ,
182187 ExitedAt : protobuf .ToTimestamp (exitStatus .ExitedAt ),
0 commit comments