From e8c269843c25ee5c40419e7e0c2294df82af24ae Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 20 May 2025 21:48:35 +0200 Subject: [PATCH] builder-next: remove support for deprecated schema1 images the core/remotes/docker/schema1 package is deprecated and removed in containerd v2.1; remove its use as we already deprecated these images for "docker pull" and elsewhere. Signed-off-by: Sebastiaan van Stijn --- .../adapters/containerimage/pull.go | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/builder/builder-next/adapters/containerimage/pull.go b/builder/builder-next/adapters/containerimage/pull.go index 9a753fe64c..14d16139cc 100644 --- a/builder/builder-next/adapters/containerimage/pull.go +++ b/builder/builder-next/adapters/containerimage/pull.go @@ -19,7 +19,6 @@ import ( "github.com/containerd/containerd/v2/core/leases" "github.com/containerd/containerd/v2/core/remotes" "github.com/containerd/containerd/v2/core/remotes/docker" - "github.com/containerd/containerd/v2/core/remotes/docker/schema1" //nolint:staticcheck // Ignore SA1019: "github.com/containerd/containerd/remotes/docker/schema1" is deprecated: use images formatted in Docker Image Manifest v2, Schema 2, or OCI Image Spec v1. "github.com/containerd/containerd/v2/pkg/gc" c8dreference "github.com/containerd/containerd/v2/pkg/reference" cerrdefs "github.com/containerd/errdefs" @@ -518,18 +517,13 @@ func (p *puller) Snapshot(ctx context.Context, g session.Group) (cache.Immutable var nonLayers []digest.Digest - var ( - schema1Converter *schema1.Converter - handlers []c8dimages.Handler - ) + var handlers []c8dimages.Handler if p.desc.MediaType == c8dimages.MediaTypeDockerSchema1Manifest { - schema1Converter, err = schema1.NewConverter(p.is.ContentStore, fetcher) - if err != nil { - stopProgress() - return nil, err - } - handlers = append(handlers, schema1Converter) - + stopProgress() + // similar to [github.com/docker/docker/distribution/DeprecatedSchema1ImageError] + errMsg := "support for Docker Image Format v1 and Docker Image manifest version 2, schema 1 has been removed in Docker Engine v28.2. " + + "More information at https://docs.docker.com/go/deprecated-image-specs/" + return nil, cerrdefs.ErrInvalidArgument.WithMessage(errMsg) // TODO: Optimize to do dispatch and integrate pulling with download manager, // leverage existing blob mapping and layer storage } else { @@ -568,13 +562,6 @@ func (p *puller) Snapshot(ctx context.Context, g session.Group) (cache.Immutable } defer stopProgress() - if schema1Converter != nil { - p.desc, err = schema1Converter.Convert(ctx) - if err != nil { - return nil, err - } - } - mfst, err := c8dimages.Manifest(ctx, p.is.ContentStore, p.desc, platform) if err != nil { return nil, err