From cfb5513a54cab38e7c166c897a7b7b97b2ed7243 Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Fri, 1 Sep 2017 07:17:15 +0000 Subject: [PATCH] Fix repo digest for schema 1 image. Signed-off-by: Lantao Liu --- hack/test-e2e-node.sh | 1 - pkg/server/image_pull.go | 9 ++++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hack/test-e2e-node.sh b/hack/test-e2e-node.sh index d6a815b80..9673c0940 100755 --- a/hack/test-e2e-node.sh +++ b/hack/test-e2e-node.sh @@ -20,7 +20,6 @@ source $(dirname "${BASH_SOURCE[0]}")/test-utils.sh DEFAULT_SKIP="\[Flaky\]|\[Slow\]|\[Serial\]" DEFAULT_SKIP+="|querying\s\/stats\/summary" -DEFAULT_SKIP+="|set\sto\sthe\smanifest\sdigest" DEFAULT_SKIP+="|AppArmor" DEFAULT_SKIP+="|pull\sfrom\sprivate\sregistry\swith\ssecret" diff --git a/pkg/server/image_pull.go b/pkg/server/image_pull.go index e2dbd9f52..345a31643 100644 --- a/pkg/server/image_pull.go +++ b/pkg/server/image_pull.go @@ -89,6 +89,13 @@ func (c *criContainerdService) PullImage(ctx context.Context, r *runtime.PullIma Credentials: func(string) (string, string, error) { return ParseAuth(r.GetAuth()) }, Client: http.DefaultClient, }) + _, desc, err := resolver.Resolve(ctx, ref) + if err != nil { + return nil, fmt.Errorf("failed to resolve image %q: %v", ref, err) + } + // We have to check schema1 here, because after `Pull`, schema1 + // image has already been converted. + isSchema1 := desc.MediaType == containerdimages.MediaTypeDockerSchema1Manifest // TODO(mikebrow): add truncIndex for image id image, err := c.client.Pull(ctx, ref, @@ -100,7 +107,7 @@ func (c *criContainerdService) PullImage(ctx context.Context, r *runtime.PullIma if err != nil { return nil, fmt.Errorf("failed to pull image %q: %v", ref, err) } - repoDigest, repoTag := getRepoDigestAndTag(namedRef, image.Target().Digest, image.Target().MediaType == containerdimages.MediaTypeDockerSchema1Manifest) + repoDigest, repoTag := getRepoDigestAndTag(namedRef, image.Target().Digest, isSchema1) for _, r := range []string{repoTag, repoDigest} { if r == "" { continue