Add manifest (multiarch) tagging
Manifest tagging is required to bundle multiple images under one tag which is used to build multiarch "images".
Currently I can think of two viable ways to implement this, therefore this issue before I actually start and file a MR.
The first approach is implementing a generic manifest API, where one or more image references are passed to the command.
Shivering-Isles tagging tool
Usage of $0:
$0 [<IMAGE REFERENCE>,] <PREFIX> <VERSION> <SUFFIX>
Examples:
$0 myimage:test myApp 2.0.24 alpine
$0 "myimage:test-arm64 myimage:test-amd64" myApp 2.0.24 alpine
The second approach is to make assumptions on the features usage for multiarch images and the way references and tags are named.
Shivering-Isles tagging tool
Usage of $0:
$0 [--archs=[arch,]|<IMAGE REFERENCE>] <PREFIX> <VERSION> <SUFFIX>
Examples:
$0 myimage:test myApp 2.0.24 alpine
$0 --archs=arm64,amd64 myApp 2.0.24 alpine
I think solution 1 fits better in the current concept while solution two takes away the hassle of image naming because the first thing you do is tag single images on their respective archs which also means the tag name and format are known at the time the command is invoked for a manifest creation.