@ -17,6 +17,7 @@ import (
"github.com/containerd/containerd"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/images"
"github.com/containerd/containerd/leases"
"github.com/containerd/containerd/namespaces"
"github.com/containerd/containerd/reference/docker"
"github.com/klauspost/compress/zstd"
@ -175,11 +176,24 @@ func preloadImages(ctx context.Context, cfg *config.Node) error {
// Ensure that nothing else can modify the image store while we're importing,
// and that our images are imported into the k8s.io namespace
ctx , done , err := client . WithLease ( namespaces . WithNamespace ( ctx , "k8s.io" ) )
ctx = namespaces . WithNamespace ( ctx , "k8s.io" )
// At startup all images in the store with a lease are cleared
ls := client . LeasesService ( )
existingLeases , err := ls . List ( ctx )
if err != nil {
return err
}
for _ , lease := range existingLeases {
logrus . Debugf ( "Deleting existing lease: %v" , lease )
ls . Delete ( ctx , lease )
}
// Any images found on import are given a lease that never expires
_ , err = ls . Create ( ctx , leases . WithRandomID ( ) )
if err != nil {
return err
}
defer done ( ctx )
for _ , fileInfo := range fileInfos {
if fileInfo . IsDir ( ) {