From 73ec0ff86b06925e63016c0948be3a49cf8915b4 Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Tue, 29 Aug 2017 15:55:09 -0400 Subject: [PATCH] Remove command line flag install from registry package. Settings flags is the responsibility of the application (cmd/) not a library Signed-off-by: Daniel Nephin --- cmd/dockerd/config.go | 17 ++++++++++++++++- registry/config.go | 16 ---------------- registry/config_unix.go | 9 --------- registry/config_windows.go | 7 ------- 4 files changed, 16 insertions(+), 33 deletions(-) diff --git a/cmd/dockerd/config.go b/cmd/dockerd/config.go index fa5565ee46..f80641b1f6 100644 --- a/cmd/dockerd/config.go +++ b/cmd/dockerd/config.go @@ -5,6 +5,7 @@ import ( "github.com/docker/docker/daemon/config" "github.com/docker/docker/opts" + "github.com/docker/docker/registry" "github.com/spf13/pflag" ) @@ -19,7 +20,7 @@ const ( func installCommonConfigFlags(conf *config.Config, flags *pflag.FlagSet) { var maxConcurrentDownloads, maxConcurrentUploads int - conf.ServiceOptions.InstallCliFlags(flags) + installRegistryServiceFlags(&conf.ServiceOptions, flags) flags.Var(opts.NewNamedListOptsRef("storage-opts", &conf.GraphOptions, nil), "storage-opt", "Storage driver options") flags.Var(opts.NewNamedListOptsRef("authorization-plugins", &conf.AuthorizationPlugins, nil), "authorization-plugin", "Authorization plugins to load") @@ -75,3 +76,17 @@ func installCommonConfigFlags(conf *config.Config, flags *pflag.FlagSet) { conf.MaxConcurrentDownloads = &maxConcurrentDownloads conf.MaxConcurrentUploads = &maxConcurrentUploads } + +func installRegistryServiceFlags(options *registry.ServiceOptions, flags *pflag.FlagSet) { + ana := opts.NewNamedListOptsRef("allow-nondistributable-artifacts", &options.AllowNondistributableArtifacts, registry.ValidateIndexName) + mirrors := opts.NewNamedListOptsRef("registry-mirrors", &options.Mirrors, registry.ValidateMirror) + insecureRegistries := opts.NewNamedListOptsRef("insecure-registries", &options.InsecureRegistries, registry.ValidateIndexName) + + flags.Var(ana, "allow-nondistributable-artifacts", "Allow push of nondistributable artifacts to registry") + flags.Var(mirrors, "registry-mirror", "Preferred Docker registry mirror") + flags.Var(insecureRegistries, "insecure-registry", "Enable insecure registry communication") + + if runtime.GOOS != "windows" { + flags.BoolVar(&options.V2Only, "disable-legacy-registry", true, "Disable contacting legacy registries") + } +} diff --git a/registry/config.go b/registry/config.go index f3eb537b52..70efb4330f 100644 --- a/registry/config.go +++ b/registry/config.go @@ -10,10 +10,8 @@ import ( "github.com/docker/distribution/reference" registrytypes "github.com/docker/docker/api/types/registry" - "github.com/docker/docker/opts" "github.com/pkg/errors" "github.com/sirupsen/logrus" - "github.com/spf13/pflag" ) // ServiceOptions holds command line options. @@ -72,20 +70,6 @@ var ( // for mocking in unit tests var lookupIP = net.LookupIP -// InstallCliFlags adds command-line options to the top-level flag parser for -// the current process. -func (options *ServiceOptions) InstallCliFlags(flags *pflag.FlagSet) { - ana := opts.NewNamedListOptsRef("allow-nondistributable-artifacts", &options.AllowNondistributableArtifacts, ValidateIndexName) - mirrors := opts.NewNamedListOptsRef("registry-mirrors", &options.Mirrors, ValidateMirror) - insecureRegistries := opts.NewNamedListOptsRef("insecure-registries", &options.InsecureRegistries, ValidateIndexName) - - flags.Var(ana, "allow-nondistributable-artifacts", "Allow push of nondistributable artifacts to registry") - flags.Var(mirrors, "registry-mirror", "Preferred Docker registry mirror") - flags.Var(insecureRegistries, "insecure-registry", "Enable insecure registry communication") - - options.installCliPlatformFlags(flags) -} - // newServiceConfig returns a new instance of ServiceConfig func newServiceConfig(options ServiceOptions) *serviceConfig { config := &serviceConfig{ diff --git a/registry/config_unix.go b/registry/config_unix.go index fdc39a1d68..b81d24933c 100644 --- a/registry/config_unix.go +++ b/registry/config_unix.go @@ -2,10 +2,6 @@ package registry -import ( - "github.com/spf13/pflag" -) - var ( // CertsDir is the directory where certificates are stored CertsDir = "/etc/docker/certs.d" @@ -18,8 +14,3 @@ var ( func cleanPath(s string) string { return s } - -// installCliPlatformFlags handles any platform specific flags for the service. -func (options *ServiceOptions) installCliPlatformFlags(flags *pflag.FlagSet) { - flags.BoolVar(&options.V2Only, "disable-legacy-registry", true, "Disable contacting legacy registries") -} diff --git a/registry/config_windows.go b/registry/config_windows.go index d1b313dc1e..82bc4afea7 100644 --- a/registry/config_windows.go +++ b/registry/config_windows.go @@ -4,8 +4,6 @@ import ( "os" "path/filepath" "strings" - - "github.com/spf13/pflag" ) // CertsDir is the directory where certificates are stored @@ -18,8 +16,3 @@ var CertsDir = os.Getenv("programdata") + `\docker\certs.d` func cleanPath(s string) string { return filepath.FromSlash(strings.Replace(s, ":", "", -1)) } - -// installCliPlatformFlags handles any platform specific flags for the service. -func (options *ServiceOptions) installCliPlatformFlags(flags *pflag.FlagSet) { - // No Windows specific flags. -}