mirror of
https://github.com/containers/podman.git
synced 2025-07-22 22:09:55 +08:00
cli: Add signature-policy flag to podman save
Allow overwrite of the signature-policy file by passing signature-policy flag to podman save command Closes: https://github.com/containers/podman/issues/15869 Signed-off-by: 😎Mostafa Emami <mustafaemami@gmail.com>
This commit is contained in:
@ -96,6 +96,11 @@ func saveFlags(cmd *cobra.Command) {
|
||||
|
||||
flags.BoolVarP(&saveOpts.Quiet, "quiet", "q", false, "Suppress the output")
|
||||
flags.BoolVarP(&saveOpts.MultiImageArchive, "multi-image-archive", "m", containerConfig.Engine.MultiImageArchive, "Interpret additional arguments as images not tags and create a multi-image-archive (only for docker-archive)")
|
||||
|
||||
if !registry.IsRemote() {
|
||||
flags.StringVar(&saveOpts.SignaturePolicy, "signature-policy", "", "Path to a signature-policy file")
|
||||
_ = flags.MarkHidden("signature-policy")
|
||||
}
|
||||
}
|
||||
|
||||
func save(cmd *cobra.Command, args []string) (finalErr error) {
|
||||
|
@ -335,7 +335,8 @@ type ImageSaveOptions struct {
|
||||
// Output - write image to the specified path.
|
||||
Output string
|
||||
// Quiet - suppress output when copying images
|
||||
Quiet bool
|
||||
Quiet bool
|
||||
SignaturePolicy string
|
||||
}
|
||||
|
||||
// ImageScpOptions provide options for securely copying images to and from a remote host
|
||||
|
@ -406,6 +406,7 @@ func (ir *ImageEngine) Save(ctx context.Context, nameOrID string, tags []string,
|
||||
saveOptions := &libimage.SaveOptions{}
|
||||
saveOptions.DirForceCompress = options.Compress
|
||||
saveOptions.OciAcceptUncompressedLayers = options.OciAcceptUncompressedLayers
|
||||
saveOptions.SignaturePolicyPath = options.SignaturePolicy
|
||||
|
||||
// Force signature removal to preserve backwards compat.
|
||||
// See https://github.com/containers/podman/pull/11669#issuecomment-925250264
|
||||
|
@ -46,6 +46,15 @@ var _ = Describe("Podman save", func() {
|
||||
Expect(save).Should(Exit(0))
|
||||
})
|
||||
|
||||
It("podman save signature-policy flag", func() {
|
||||
SkipIfRemote("--signature-policy N/A for remote")
|
||||
outfile := filepath.Join(podmanTest.TempDir, "alpine.tar")
|
||||
|
||||
save := podmanTest.Podman([]string{"save", "--signature-policy", "/etc/containers/policy.json", "-o", outfile, ALPINE})
|
||||
save.WaitWithDefaultTimeout()
|
||||
Expect(save).Should(Exit(0))
|
||||
})
|
||||
|
||||
It("podman save oci flag", func() {
|
||||
outfile := filepath.Join(podmanTest.TempDir, "alpine.tar")
|
||||
|
||||
|
Reference in New Issue
Block a user