cri,nri: block NRI plugin sync. during event processing.

Block the synchronization of registering NRI plugins during
CRI events to avoid the plugin ending up in an inconsistent
starting state after initial sync (missing pods, containers
or missed events for some pods or containers).

Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
This commit is contained in:
Krisztian Litkey
2025-01-31 20:15:12 +02:00
parent e465b45f9c
commit 79cdbf61b6
11 changed files with 49 additions and 0 deletions

View File

@@ -313,6 +313,8 @@ func (c *criService) CreateContainer(ctx context.Context, r *runtime.CreateConta
}
}()
defer c.nri.BlockPluginSync().Unblock()
var cntr containerd.Container
if cntr, err = c.client.NewContainer(ctx, id, opts...); err != nil {
return nil, fmt.Errorf("failed to create containerd container: %w", err)