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:
		
							parent
							
								
									30231d0da7
								
							
						
					
					
						commit
						33c31112fb
					
				|  | @ -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) { | ||||
|  |  | |||
|  | @ -336,6 +336,7 @@ type ImageSaveOptions struct { | |||
| 	Output string | ||||
| 	// Quiet - suppress output when copying images
 | ||||
| 	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") | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue