Skip to content

Commit 6ca0aeb

Browse files
committed
Allow for images with artifacts to pull
Signed-off-by: James Sturtevant <[email protected]> (cherry picked from commit a9ba33f) Signed-off-by: James Sturtevant <[email protected]>
1 parent 72e0200 commit 6ca0aeb

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

image.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,15 @@ func (i *image) getLayers(ctx context.Context, platform platforms.MatchComparer,
437437
if err != nil {
438438
return nil, fmt.Errorf("failed to resolve rootfs: %w", err)
439439
}
440-
if len(diffIDs) != len(manifest.Layers) {
440+
441+
// parse out the image layers from oci artifact layers
442+
imageLayers := []ocispec.Descriptor{}
443+
for _, ociLayer := range manifest.Layers {
444+
if images.IsLayerType(ociLayer.MediaType) {
445+
imageLayers = append(imageLayers, ociLayer)
446+
}
447+
}
448+
if len(diffIDs) != len(imageLayers) {
441449
return nil, errors.New("mismatched image rootfs and manifest layers")
442450
}
443451
layers := make([]rootfs.Layer, len(diffIDs))
@@ -447,7 +455,7 @@ func (i *image) getLayers(ctx context.Context, platform platforms.MatchComparer,
447455
MediaType: ocispec.MediaTypeImageLayer,
448456
Digest: diffIDs[i],
449457
}
450-
layers[i].Blob = manifest.Layers[i]
458+
layers[i].Blob = imageLayers[i]
451459
}
452460
return layers, nil
453461
}

0 commit comments

Comments
 (0)