summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2021-01-28 15:34:35 -0500
committerDaniel J Walsh <dwalsh@redhat.com>2021-01-29 08:48:35 -0500
commitd7c356552e3c3d1710f22da2f710f9ad529c2ad9 (patch)
tree2143e634af0203c47a10301da6be13518c3a7799 /pkg
parent0c6a889a7ec93964a12a10870920727e13e438c3 (diff)
downloadpodman-d7c356552e3c3d1710f22da2f710f9ad529c2ad9.tar.gz
podman-d7c356552e3c3d1710f22da2f710f9ad529c2ad9.tar.bz2
podman-d7c356552e3c3d1710f22da2f710f9ad529c2ad9.zip
Podman-remote push can support --format
Fix man page to document podman push --format fully. Also found that push was not handling the tlsverify so fixed this. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'pkg')
-rw-r--r--pkg/api/handlers/compat/images_push.go10
-rw-r--r--pkg/bindings/images/types.go2
-rw-r--r--pkg/bindings/images/types_push_options.go16
-rw-r--r--pkg/domain/infra/tunnel/images.go2
4 files changed, 27 insertions, 3 deletions
diff --git a/pkg/api/handlers/compat/images_push.go b/pkg/api/handlers/compat/images_push.go
index 4a8fcdff3..c352ac6cd 100644
--- a/pkg/api/handlers/compat/images_push.go
+++ b/pkg/api/handlers/compat/images_push.go
@@ -5,6 +5,7 @@ import (
"net/http"
"strings"
+ "github.com/containers/image/v5/types"
"github.com/containers/podman/v2/libpod"
"github.com/containers/podman/v2/pkg/api/handlers/utils"
"github.com/containers/podman/v2/pkg/auth"
@@ -27,8 +28,9 @@ func PushImage(w http.ResponseWriter, r *http.Request) {
All bool `schema:"all"`
Compress bool `schema:"compress"`
Destination string `schema:"destination"`
- Tag string `schema:"tag"`
+ Format string `schema:"format"`
TLSVerify bool `schema:"tlsVerify"`
+ Tag string `schema:"tag"`
}{
// This is where you can override the golang default value for one of fields
TLSVerify: true,
@@ -67,8 +69,12 @@ func PushImage(w http.ResponseWriter, r *http.Request) {
All: query.All,
Authfile: authfile,
Compress: query.Compress,
- Username: username,
+ Format: query.Format,
Password: password,
+ Username: username,
+ }
+ if _, found := r.URL.Query()["tlsVerify"]; found {
+ options.SkipTLSVerify = types.NewOptionalBool(!query.TLSVerify)
}
if err := imageEngine.Push(context.Background(), imageName, query.Destination, options); err != nil {
if errors.Cause(err) != storage.ErrImageUnknown {
diff --git a/pkg/bindings/images/types.go b/pkg/bindings/images/types.go
index 75f1a2f81..2cec9ee71 100644
--- a/pkg/bindings/images/types.go
+++ b/pkg/bindings/images/types.go
@@ -106,6 +106,8 @@ type PushOptions struct {
Authfile *string
// Compress tarball image layers when pushing to a directory using the 'dir' transport.
Compress *bool
+ // Manifest type of the pushed image
+ Format *string
// Password for authenticating against the registry.
Password *string
// SkipTLSVerify to skip HTTPS and certificate verification.
diff --git a/pkg/bindings/images/types_push_options.go b/pkg/bindings/images/types_push_options.go
index 7f9bb1064..b7d8a6f2d 100644
--- a/pkg/bindings/images/types_push_options.go
+++ b/pkg/bindings/images/types_push_options.go
@@ -135,6 +135,22 @@ func (o *PushOptions) GetCompress() bool {
return *o.Compress
}
+// WithFormat
+func (o *PushOptions) WithFormat(value string) *PushOptions {
+ v := &value
+ o.Format = v
+ return o
+}
+
+// GetFormat
+func (o *PushOptions) GetFormat() string {
+ var format string
+ if o.Format == nil {
+ return format
+ }
+ return *o.Format
+}
+
// WithPassword
func (o *PushOptions) WithPassword(value string) *PushOptions {
v := &value
diff --git a/pkg/domain/infra/tunnel/images.go b/pkg/domain/infra/tunnel/images.go
index 878e7b999..6ba738cb9 100644
--- a/pkg/domain/infra/tunnel/images.go
+++ b/pkg/domain/infra/tunnel/images.go
@@ -236,7 +236,7 @@ func (ir *ImageEngine) Import(ctx context.Context, opts entities.ImageImportOpti
func (ir *ImageEngine) Push(ctx context.Context, source string, destination string, opts entities.ImagePushOptions) error {
options := new(images.PushOptions)
- options.WithAll(opts.All).WithCompress(opts.Compress).WithUsername(opts.Username).WithPassword(opts.Password).WithAuthfile(opts.Authfile)
+ options.WithAll(opts.All).WithCompress(opts.Compress).WithUsername(opts.Username).WithPassword(opts.Password).WithAuthfile(opts.Authfile).WithFormat(opts.Format)
if s := opts.SkipTLSVerify; s != types.OptionalBoolUndefined {
if s == types.OptionalBoolTrue {