Adding a flag to allow disabling registry lookup

Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
This commit is contained in:
Nishant Totla 2017-05-15 16:01:48 -07:00
parent c61ea6f789
commit 39d03bb2bd
No known key found for this signature in database
GPG Key ID: 7EA5781C9B3D0C19
3 changed files with 13 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import (
"github.com/docker/cli/cli" "github.com/docker/cli/cli"
"github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/versions"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/pflag" "github.com/spf13/pflag"
"golang.org/x/net/context" "golang.org/x/net/context"
@ -106,7 +107,10 @@ func runCreate(dockerCli *command.DockerCli, flags *pflag.FlagSet, opts *service
createOpts.EncodedRegistryAuth = encodedAuth createOpts.EncodedRegistryAuth = encodedAuth
} }
createOpts.QueryRegistry = true // query registry if flag disabling it was not set
if !opts.noResolveImage && versions.GreaterThanOrEqualTo(apiClient.ClientVersion(), "1.30") {
createOpts.QueryRegistry = true
}
response, err := apiClient.ServiceCreate(ctx, service, createOpts) response, err := apiClient.ServiceCreate(ctx, service, createOpts)
if err != nil { if err != nil {

View File

@ -542,7 +542,8 @@ type serviceOptions struct {
networks opts.ListOpts networks opts.ListOpts
endpoint endpointOptions endpoint endpointOptions
registryAuth bool registryAuth bool
noResolveImage bool
logDriver logDriverOptions logDriver logDriverOptions
@ -797,6 +798,8 @@ func addServiceFlags(flags *pflag.FlagSet, opts *serviceOptions, defaultFlagValu
flags.StringVar(&opts.endpoint.mode, flagEndpointMode, defaultFlagValues.getString(flagEndpointMode), "Endpoint mode (vip or dnsrr)") flags.StringVar(&opts.endpoint.mode, flagEndpointMode, defaultFlagValues.getString(flagEndpointMode), "Endpoint mode (vip or dnsrr)")
flags.BoolVar(&opts.registryAuth, flagRegistryAuth, false, "Send registry authentication details to swarm agents") flags.BoolVar(&opts.registryAuth, flagRegistryAuth, false, "Send registry authentication details to swarm agents")
flags.BoolVar(&opts.noResolveImage, flagNoResolveImage, false, "Do not query the registry to resolve image digest and supported platforms")
flags.SetAnnotation(flagNoResolveImage, "version", []string{"1.30"})
flags.StringVar(&opts.logDriver.name, flagLogDriver, "", "Logging driver for service") flags.StringVar(&opts.logDriver.name, flagLogDriver, "", "Logging driver for service")
flags.Var(&opts.logDriver.opts, flagLogOpt, "Logging driver options") flags.Var(&opts.logDriver.opts, flagLogOpt, "Logging driver options")
@ -899,6 +902,7 @@ const (
flagUser = "user" flagUser = "user"
flagWorkdir = "workdir" flagWorkdir = "workdir"
flagRegistryAuth = "with-registry-auth" flagRegistryAuth = "with-registry-auth"
flagNoResolveImage = "no-resolve-image"
flagLogDriver = "log-driver" flagLogDriver = "log-driver"
flagLogOpt = "log-opt" flagLogOpt = "log-opt"
flagHealthCmd = "health-cmd" flagHealthCmd = "health-cmd"

View File

@ -167,7 +167,9 @@ func runUpdate(dockerCli *command.DockerCli, flags *pflag.FlagSet, options *serv
if err := resolveServiceImageDigestContentTrust(dockerCli, spec); err != nil { if err := resolveServiceImageDigestContentTrust(dockerCli, spec); err != nil {
return err return err
} }
updateOpts.QueryRegistry = true if !options.noResolveImage && versions.GreaterThanOrEqualTo(apiClient.ClientVersion(), "1.30") {
updateOpts.QueryRegistry = true
}
} }
updatedSecrets, err := getUpdatedSecrets(apiClient, flags, spec.TaskTemplate.ContainerSpec.Secrets) updatedSecrets, err := getUpdatedSecrets(apiClient, flags, spec.TaskTemplate.ContainerSpec.Secrets)