@@ -12,6 +12,7 @@ import (
1212 "time"
1313
1414 apitypes "github.com/alibaba/pouch/apis/types"
15+ anno "github.com/alibaba/pouch/daemon/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 {
@@ -459,6 +464,11 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta
459464 if iSpec := config .GetImage (); iSpec != nil {
460465 image = iSpec .Image
461466 }
467+
468+ specAnnotation := make (map [string ]string )
469+ specAnnotation [anno .ContainerType ] = anno .ContainerTypeSandbox
470+ specAnnotation [anno .SandboxID ] = podSandboxID
471+
462472 createConfig := & apitypes.ContainerCreateConfig {
463473 ContainerConfig : apitypes.ContainerConfig {
464474 Entrypoint : config .Command ,
@@ -468,9 +478,10 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta
468478 WorkingDir : config .WorkingDir ,
469479 Labels : labels ,
470480 // Interactive containers:
471- OpenStdin : config .Stdin ,
472- StdinOnce : config .StdinOnce ,
473- Tty : config .Tty ,
481+ OpenStdin : config .Stdin ,
482+ StdinOnce : config .StdinOnce ,
483+ Tty : config .Tty ,
484+ SpecAnnotation : specAnnotation ,
474485 },
475486 HostConfig : & apitypes.HostConfig {
476487 Binds : generateMountBindings (config .GetMounts ()),
0 commit comments