mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
Fix error when image has already been pulled
CRI and containerd APIs disagree about the registry names - CRI supports index.docker.io as an alias for docker.io, while containerd does not. Use the actual stored RepoTag to determine what image to ask containerd for. Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
This commit is contained in:
parent
65cd606832
commit
f099bfa508
@ -353,19 +353,23 @@ func prePullImages(ctx context.Context, client *containerd.Client, imageClient r
|
||||
scanner := bufio.NewScanner(imageList)
|
||||
for scanner.Scan() {
|
||||
name := strings.TrimSpace(scanner.Text())
|
||||
if _, err := imageClient.ImageStatus(ctx, &runtimeapi.ImageStatusRequest{
|
||||
|
||||
if status, err := imageClient.ImageStatus(ctx, &runtimeapi.ImageStatusRequest{
|
||||
Image: &runtimeapi.ImageSpec{
|
||||
Image: name,
|
||||
},
|
||||
}); err == nil {
|
||||
}); err == nil && status.Image != nil && len(status.Image.RepoTags) > 0 {
|
||||
logrus.Infof("Image %s has already been pulled", name)
|
||||
if image, err := imageService.Get(ctx, name); err != nil {
|
||||
errs = append(errs, err)
|
||||
} else {
|
||||
images = append(images, image)
|
||||
for _, tag := range status.Image.RepoTags {
|
||||
if image, err := imageService.Get(ctx, tag); err != nil {
|
||||
errs = append(errs, err)
|
||||
} else {
|
||||
images = append(images, image)
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
logrus.Infof("Pulling image %s", name)
|
||||
if _, err := imageClient.PullImage(ctx, &runtimeapi.PullImageRequest{
|
||||
Image: &runtimeapi.ImageSpec{
|
||||
|
Loading…
Reference in New Issue
Block a user