Skip to content

Commit

Permalink
cli: Add signature-policy flag to podman save
Browse files Browse the repository at this point in the history
Allow overwrite of the signature-policy file
by passing signature-policy flag to podman save command

Closes: containers#15869
Signed-off-by: 馃槑Mostafa Emami <mustafaemami@gmail.com>
  • Loading branch information
idleroamer committed Sep 21, 2022
1 parent 30231d0 commit 8b99b43
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 2 deletions.
1 change: 1 addition & 0 deletions cmd/podman/images/save.go
Expand Up @@ -96,6 +96,7 @@ 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)")
flags.StringVar(&saveOpts.SignaturePolicy, "signature-policy", "", "Pathname of signature policy file")
}

func save(cmd *cobra.Command, args []string) (finalErr error) {
Expand Down
4 changes: 4 additions & 0 deletions docs/source/markdown/podman-save.1.md
Expand Up @@ -57,6 +57,10 @@ Write to a file, default is STDOUT

Suppress the output

#### **--signature-policy**

Define the path to a signature-policy file

#### **--uncompressed**

Accept uncompressed layers when using one of the OCI formats.
Expand Down
3 changes: 2 additions & 1 deletion pkg/domain/entities/images.go
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions pkg/domain/infra/abi/images.go
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/load_test.go
Expand Up @@ -94,7 +94,7 @@ var _ = Describe("Podman load", func() {
It("podman load oci-archive with signature", func() {
outfile := filepath.Join(podmanTest.TempDir, "alpine.tar")

save := podmanTest.Podman([]string{"save", "-o", outfile, "--format", "oci-archive", ALPINE})
save := podmanTest.Podman([]string{"save", "--signature-policy", "/etc/containers/policy.json", "-o", outfile, "--format", "oci-archive", ALPINE})
save.WaitWithDefaultTimeout()
Expect(save).Should(Exit(0))

Expand Down

0 comments on commit 8b99b43

Please sign in to comment.