mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 21:17:58 +08:00
fix: allow changing media-type when pushing an image tag (#3022)
Fixes #3005 Previously, changing a image's media-type was disallowed. However, "docker buildx" appears to first push an image manifest and then an image index for the same image tag. So, allow this. Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
This commit is contained in:
committed by
GitHub
parent
0930e57184
commit
c87f489a79
@@ -10835,13 +10835,13 @@ func TestManifestImageIndex(t *testing.T) {
|
||||
resp, err = resty.R().SetHeader("Content-Type", ispec.MediaTypeImageIndex).
|
||||
SetBody(content).Put(baseURL + "/v2/index/manifests/test:1.0")
|
||||
So(err, ShouldBeNil)
|
||||
So(resp.StatusCode(), ShouldEqual, http.StatusBadRequest)
|
||||
So(resp.StatusCode(), ShouldEqual, http.StatusCreated)
|
||||
|
||||
// previously an image index, try writing a manifest
|
||||
resp, err = resty.R().SetHeader("Content-Type", ispec.MediaTypeImageManifest).
|
||||
SetBody(m1content).Put(baseURL + "/v2/index/manifests/test:index1")
|
||||
So(err, ShouldBeNil)
|
||||
So(resp.StatusCode(), ShouldEqual, http.StatusBadRequest)
|
||||
So(resp.StatusCode(), ShouldEqual, http.StatusCreated)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -250,15 +250,9 @@ func CheckIfIndexNeedsUpdate(index *ispec.Index, desc *ispec.Descriptor,
|
||||
|
||||
// changing media-type is disallowed!
|
||||
if manifest.MediaType != desc.MediaType {
|
||||
err := zerr.ErrBadManifest
|
||||
log.Error().Err(err).
|
||||
log.Info().
|
||||
Str("old mediaType", manifest.MediaType).
|
||||
Str("new mediaType", desc.MediaType).Msg("cannot change media-type")
|
||||
|
||||
reason := fmt.Sprintf("changing manifest media-type from \"%s\" to \"%s\" is disallowed",
|
||||
manifest.MediaType, desc.MediaType)
|
||||
|
||||
return false, "", zerr.NewError(err).AddDetail("reason", reason)
|
||||
Str("new mediaType", desc.MediaType).Msg("media-type changed")
|
||||
}
|
||||
|
||||
oldDesc := *desc
|
||||
|
||||
@@ -3410,11 +3410,11 @@ func TestS3ManifestImageIndex(t *testing.T) {
|
||||
So(digest, ShouldNotBeNil)
|
||||
|
||||
_, _, err = imgStore.PutImageManifest("index", "test:1.0", ispec.MediaTypeImageIndex, content)
|
||||
So(err, ShouldNotBeNil)
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
// previously an image index, try writing a manifest
|
||||
_, _, err = imgStore.PutImageManifest("index", "test:index1", ispec.MediaTypeImageManifest, m1content)
|
||||
So(err, ShouldNotBeNil)
|
||||
So(err, ShouldBeNil)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user