@@ -12,6 +12,7 @@ import (
1212 "time"
1313
1414 apitypes "github.com/alibaba/pouch/apis/types"
15+ anno "github.com/alibaba/pouch/cri/annotations"
1516 "github.com/alibaba/pouch/daemon/config"
1617 "github.com/alibaba/pouch/daemon/mgr"
1718 "github.com/alibaba/pouch/pkg/errtypes"
@@ -161,19 +162,23 @@ func (c *CriManager) RunPodSandbox(ctx context.Context, r *runtime.RunPodSandbox
161162 return nil , err
162163 }
163164
165+ id , err := c .ContainerMgr .GenerateID ()
166+ if err != nil {
167+ return nil , err
168+ }
169+
164170 // Step 2: Create the sandbox container.
165- createConfig , err := makeSandboxPouchConfig (config , image )
171+ createConfig , err := makeSandboxPouchConfig (config , id , image )
166172 if err != nil {
167173 return nil , fmt .Errorf ("failed to make sandbox pouch config for pod %q: %v" , config .Metadata .Name , err )
168174 }
169175
170176 sandboxName := makeSandboxName (config )
171177
172- createResp , err : = c .ContainerMgr .Create (ctx , sandboxName , createConfig )
178+ _ , err = c .ContainerMgr .Create (ctx , sandboxName , createConfig )
173179 if err != nil {
174180 return nil , fmt .Errorf ("failed to create a sandbox for pod %q: %v" , config .Metadata .Name , err )
175181 }
176- id := createResp .ID
177182 defer func () {
178183 // If running sandbox failed, clean up the container.
179184 if retErr != nil {
@@ -236,6 +241,7 @@ func (c *CriManager) RunPodSandbox(ctx context.Context, r *runtime.RunPodSandbox
236241 ID : id ,
237242 Config : config ,
238243 NetNSPath : netnsPath ,
244+ Runtime : config .Annotations [anno .KubernetesRuntime ],
239245 }
240246 c .SandboxStore .Put (sandboxMeta )
241247
@@ -462,6 +468,11 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta
462468 if iSpec := config .GetImage (); iSpec != nil {
463469 image = iSpec .Image
464470 }
471+
472+ specAnnotation := make (map [string ]string )
473+ specAnnotation [anno .ContainerType ] = anno .ContainerTypeContainer
474+ specAnnotation [anno .SandboxName ] = podSandboxID
475+
465476 createConfig := & apitypes.ContainerCreateConfig {
466477 ContainerConfig : apitypes.ContainerConfig {
467478 Entrypoint : config .Command ,
@@ -471,9 +482,10 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta
471482 WorkingDir : config .WorkingDir ,
472483 Labels : labels ,
473484 // Interactive containers:
474- OpenStdin : config .Stdin ,
475- StdinOnce : config .StdinOnce ,
476- Tty : config .Tty ,
485+ OpenStdin : config .Stdin ,
486+ StdinOnce : config .StdinOnce ,
487+ Tty : config .Tty ,
488+ SpecAnnotation : specAnnotation ,
477489 },
478490 HostConfig : & apitypes.HostConfig {
479491 Binds : generateMountBindings (config .GetMounts ()),
0 commit comments