mirror of
https://github.com/GoogleContainerTools/kaniko
synced 2026-10-19 02:01:43 +02:00
feat: ensure images layers correspond with the image media type (#2719)
Ensure zstd compression only gets applied to oci images. When adding a layer to an image ensure that they are compatable if not convert them. Create function to convert mediatypes between oci and docker types.
This commit is contained in:
+18
-1
@@ -145,6 +145,7 @@ func (f *fakeLayerCache) RetrieveLayer(key string) (v1.Image, error) {
|
||||
|
||||
type fakeLayer struct {
|
||||
TarContent []byte
|
||||
mediaType types.MediaType
|
||||
}
|
||||
|
||||
func (f fakeLayer) Digest() (v1.Hash, error) {
|
||||
@@ -163,7 +164,7 @@ func (f fakeLayer) Size() (int64, error) {
|
||||
return 0, nil
|
||||
}
|
||||
func (f fakeLayer) MediaType() (types.MediaType, error) {
|
||||
return "", nil
|
||||
return f.mediaType, nil
|
||||
}
|
||||
|
||||
type fakeImage struct {
|
||||
@@ -203,3 +204,19 @@ func (f fakeImage) LayerByDigest(v1.Hash) (v1.Layer, error) {
|
||||
func (f fakeImage) LayerByDiffID(v1.Hash) (v1.Layer, error) {
|
||||
return fakeLayer{}, nil
|
||||
}
|
||||
|
||||
type ociFakeImage struct {
|
||||
*fakeImage
|
||||
}
|
||||
|
||||
func (f ociFakeImage) MediaType() (types.MediaType, error) {
|
||||
return types.OCIManifestSchema1, nil
|
||||
}
|
||||
|
||||
type dockerFakeImage struct {
|
||||
*fakeImage
|
||||
}
|
||||
|
||||
func (f dockerFakeImage) MediaType() (types.MediaType, error) {
|
||||
return types.DockerManifestSchema2, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user