fix: gc for untagged docker manifests (#3349)

- fixes #3347: removeUntaggedManifests() did not consider compatible manifest types
- add AsDockerImage() to Image and MultiarchImage for testing
- extend TestGarbageCollectAndRetentionMetaDB to test docker image and multiarch image

Signed-off-by: Stephan Merker <stephan.merker@sap.com>
This commit is contained in:
Stephan Merker
2025-09-01 18:20:35 +02:00
committed by GitHub
parent cb520aa9e4
commit f0404e7e72
6 changed files with 182 additions and 9 deletions
+2 -3
View File
@@ -5,7 +5,6 @@ import (
"encoding/json"
godigest "github.com/opencontainers/go-digest"
ispec "github.com/opencontainers/image-spec/specs-go/v1"
stypes "zotregistry.dev/zot/pkg/storage/types"
)
@@ -52,7 +51,7 @@ func WriteImageToFileSystem(image Image, repoName, ref string, storeController s
return err
}
_, _, err = store.PutImageManifest(repoName, ref, ispec.MediaTypeImageManifest, manifestBlob)
_, _, err = store.PutImageManifest(repoName, ref, image.Manifest.MediaType, manifestBlob)
if err != nil {
return err
}
@@ -82,7 +81,7 @@ func WriteMultiArchImageToFileSystem(multiarchImage MultiarchImage, repoName, re
return err
}
_, _, err = store.PutImageManifest(repoName, ref, ispec.MediaTypeImageIndex,
_, _, err = store.PutImageManifest(repoName, ref, multiarchImage.Index.MediaType,
indexBlob)
return err