diff options
author | Aditya Rajan <arajan@redhat.com> | 2021-10-21 16:38:04 +0530 |
---|---|---|
committer | Aditya Rajan <arajan@redhat.com> | 2021-10-21 17:44:31 +0530 |
commit | f4f96962c0133726b0aac6352720bde411792c47 (patch) | |
tree | 62536554e2945d5fd911908d63f76e657769ea24 /pkg | |
parent | 4268a4afee4c1d030c1f901398e6a9b3f282eae3 (diff) | |
download | podman-f4f96962c0133726b0aac6352720bde411792c47.tar.gz podman-f4f96962c0133726b0aac6352720bde411792c47.tar.bz2 podman-f4f96962c0133726b0aac6352720bde411792c47.zip |
tag: Support tagging manifest list instead of resolving to images
Following commit makes sure when buildah tag is invoked on a manifest
list, it tags the same manifest list instead of resolving to an image and
tagging it.
Port of: https://github.com/containers/buildah/pull/3483
Signed-off-by: Aditya Rajan <arajan@redhat.com>
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/api/handlers/compat/images_tag.go | 5 | ||||
-rw-r--r-- | pkg/domain/infra/abi/images.go | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/pkg/api/handlers/compat/images_tag.go b/pkg/api/handlers/compat/images_tag.go index 7858298be..5d413a821 100644 --- a/pkg/api/handlers/compat/images_tag.go +++ b/pkg/api/handlers/compat/images_tag.go @@ -4,6 +4,7 @@ import ( "fmt" "net/http" + "github.com/containers/common/libimage" "github.com/containers/podman/v3/libpod" "github.com/containers/podman/v3/pkg/api/handlers/utils" api "github.com/containers/podman/v3/pkg/api/types" @@ -16,7 +17,9 @@ func TagImage(w http.ResponseWriter, r *http.Request) { // /v1.xx/images/(name)/tag name := utils.GetName(r) - newImage, _, err := runtime.LibimageRuntime().LookupImage(name, nil) + // Allow tagging manifest list instead of resolving instances from manifest + lookupOptions := &libimage.LookupImageOptions{ManifestList: true} + newImage, _, err := runtime.LibimageRuntime().LookupImage(name, lookupOptions) if err != nil { utils.ImageNotFound(w, name, errors.Wrapf(err, "failed to find image %s", name)) return diff --git a/pkg/domain/infra/abi/images.go b/pkg/domain/infra/abi/images.go index d2222c017..8878bf128 100644 --- a/pkg/domain/infra/abi/images.go +++ b/pkg/domain/infra/abi/images.go @@ -331,7 +331,9 @@ func (ir *ImageEngine) Push(ctx context.Context, source string, destination stri } func (ir *ImageEngine) Tag(ctx context.Context, nameOrID string, tags []string, options entities.ImageTagOptions) error { - image, _, err := ir.Libpod.LibimageRuntime().LookupImage(nameOrID, nil) + // Allow tagging manifest list instead of resolving instances from manifest + lookupOptions := &libimage.LookupImageOptions{ManifestList: true} + image, _, err := ir.Libpod.LibimageRuntime().LookupImage(nameOrID, lookupOptions) if err != nil { return err } |