diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-12-01 21:48:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-01 21:48:40 +0100 |
commit | e3313fdd50057ee86551c535252a4dbed82d6516 (patch) | |
tree | b9a22bf73bc9bd95df6e483fe354ec8250dba5c8 /cmd/podman/images/pull.go | |
parent | b7ff6f09121eee8a0444baede9f6c84cc1f12b71 (diff) | |
parent | 88f8d96ed8e7edcb4dfdb3de707034036bab27ff (diff) | |
download | podman-e3313fdd50057ee86551c535252a4dbed82d6516.tar.gz podman-e3313fdd50057ee86551c535252a4dbed82d6516.tar.bz2 podman-e3313fdd50057ee86551c535252a4dbed82d6516.zip |
Merge pull request #8488 from rhatdan/platform
Add support for --platform
Diffstat (limited to 'cmd/podman/images/pull.go')
-rw-r--r-- | cmd/podman/images/pull.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/cmd/podman/images/pull.go b/cmd/podman/images/pull.go index a6f41688c..f8e1ee226 100644 --- a/cmd/podman/images/pull.go +++ b/cmd/podman/images/pull.go @@ -3,6 +3,7 @@ package images import ( "fmt" "os" + "strings" "github.com/containers/common/pkg/auth" "github.com/containers/common/pkg/completion" @@ -11,6 +12,7 @@ import ( "github.com/containers/podman/v2/cmd/podman/registry" "github.com/containers/podman/v2/pkg/domain/entities" "github.com/containers/podman/v2/pkg/util" + "github.com/pkg/errors" "github.com/spf13/cobra" ) @@ -94,6 +96,10 @@ func pullFlags(cmd *cobra.Command) { flags.StringVar(&pullOptions.OverrideVariant, overrideVariantFlagName, "", " use VARIANT instead of the running architecture variant for choosing images") _ = cmd.RegisterFlagCompletionFunc(overrideVariantFlagName, completion.AutocompleteNone) + platformFlagName := "platform" + flags.String(platformFlagName, "", "Specify the platform for selecting the image. (Conflicts with override-arch and override-os)") + _ = cmd.RegisterFlagCompletionFunc(platformFlagName, completion.AutocompleteNone) + flags.Bool("disable-content-trust", false, "This is a Docker specific option and is a NOOP") flags.BoolVarP(&pullOptions.Quiet, "quiet", "q", false, "Suppress output information when pulling images") flags.StringVar(&pullOptions.SignaturePolicy, "signature-policy", "", "`Pathname` of signature policy file (not usually used)") @@ -127,6 +133,20 @@ func imagePull(cmd *cobra.Command, args []string) error { return err } } + platform, err := cmd.Flags().GetString("platform") + if err != nil { + return err + } + if platform != "" { + if pullOptions.OverrideArch != "" || pullOptions.OverrideOS != "" { + return errors.Errorf("--platform option can not be specified with --overide-arch or --override-os") + } + split := strings.SplitN(platform, "/", 2) + pullOptions.OverrideOS = split[0] + if len(split) > 1 { + pullOptions.OverrideArch = split[1] + } + } if pullOptions.CredentialsCLI != "" { creds, err := util.ParseRegistryCreds(pullOptions.CredentialsCLI) |