From 4a92b8a0ef355aec76fcaedb62c573e3a7fa21a7 Mon Sep 17 00:00:00 2001 From: Tibor Vass Date: Fri, 24 Jul 2015 14:59:36 -0400 Subject: [PATCH] registry: Change default endpoint on windows to a windows-specific one Signed-off-by: Tibor Vass --- registry/config.go | 22 ---------------------- registry/consts.go | 24 ++++++++++++++++++++++++ registry/consts_unix.go | 6 ++++++ registry/consts_windows.go | 10 ++++++++++ registry/registry.go | 1 + registry/service.go | 19 +++++++++++-------- 6 files changed, 52 insertions(+), 30 deletions(-) create mode 100644 registry/consts.go create mode 100644 registry/consts_unix.go create mode 100644 registry/consts_windows.go diff --git a/registry/config.go b/registry/config.go index 95f731298c..dc1ee899ba 100644 --- a/registry/config.go +++ b/registry/config.go @@ -20,28 +20,6 @@ type Options struct { InsecureRegistries opts.ListOpts } -const ( - // DefaultNamespace is the default namespace - DefaultNamespace = "docker.io" - // DefaultV2Registry is the URI of the default v2 registry - DefaultV2Registry = "https://registry-1.docker.io" - // DefaultRegistryVersionHeader is the name of the default HTTP header - // that carries Registry version info - DefaultRegistryVersionHeader = "Docker-Distribution-Api-Version" - // DefaultV1Registry is the URI of the default v1 registry - DefaultV1Registry = "https://index.docker.io" - - // CertsDir is the directory where certificates are stored - CertsDir = "/etc/docker/certs.d" - - // IndexServer is the v1 registry server used for user auth + account creation - IndexServer = DefaultV1Registry + "/v1/" - // IndexName is the name of the index - IndexName = "docker.io" - // NotaryServer is the endpoint serving the Notary trust server - NotaryServer = "https://notary.docker.io" -) - var ( // ErrInvalidRepositoryName is an error returned if the repository name did // not have the correct form diff --git a/registry/consts.go b/registry/consts.go new file mode 100644 index 0000000000..19471e0600 --- /dev/null +++ b/registry/consts.go @@ -0,0 +1,24 @@ +package registry + +const ( + // DefaultNamespace is the default namespace + DefaultNamespace = "docker.io" + // DefaultRegistryVersionHeader is the name of the default HTTP header + // that carries Registry version info + DefaultRegistryVersionHeader = "Docker-Distribution-Api-Version" + // DefaultV1Registry is the URI of the default v1 registry + DefaultV1Registry = "https://index.docker.io" + + // CertsDir is the directory where certificates are stored + CertsDir = "/etc/docker/certs.d" + + // IndexServer is the v1 registry server used for user auth + account creation + IndexServer = DefaultV1Registry + "/v1/" + // IndexName is the name of the index + IndexName = "docker.io" + + // NotaryServer is the endpoint serving the Notary trust server + NotaryServer = "https://notary.docker.io" + + // IndexServer = "https://registry-stage.hub.docker.com/v1/" +) diff --git a/registry/consts_unix.go b/registry/consts_unix.go new file mode 100644 index 0000000000..b02e579a12 --- /dev/null +++ b/registry/consts_unix.go @@ -0,0 +1,6 @@ +// +build !windows + +package registry + +// DefaultV2Registry is the URI of the default v2 registry +const DefaultV2Registry = "https://registry-1.docker.io" diff --git a/registry/consts_windows.go b/registry/consts_windows.go new file mode 100644 index 0000000000..b62c5faf14 --- /dev/null +++ b/registry/consts_windows.go @@ -0,0 +1,10 @@ +// +build windows + +package registry + +// DefaultV2Registry is the URI of the default (official) v2 registry. +// This is the windows-specific endpoint. +// +// Currently it is a TEMPORARY link that allows Microsoft to continue +// development of Docker Engine for Windows. +const DefaultV2Registry = "https://ms-tp3.registry-1.docker.io" diff --git a/registry/registry.go b/registry/registry.go index 74f731bdca..e353d3cceb 100644 --- a/registry/registry.go +++ b/registry/registry.go @@ -1,3 +1,4 @@ +// Package registry contains client primitives to interact with a remote Docker registry. package registry import ( diff --git a/registry/service.go b/registry/service.go index f4ea42ef97..0cceb23d4f 100644 --- a/registry/service.go +++ b/registry/service.go @@ -5,6 +5,7 @@ import ( "fmt" "net/http" "net/url" + "runtime" "strings" "github.com/docker/distribution/registry/client/auth" @@ -138,14 +139,16 @@ func (s *Service) LookupEndpoints(repoName string) (endpoints []APIEndpoint, err TrimHostname: true, TLSConfig: tlsConfig, }) - // v1 registry - endpoints = append(endpoints, APIEndpoint{ - URL: DefaultV1Registry, - Version: APIVersion1, - Official: true, - TrimHostname: true, - TLSConfig: tlsConfig, - }) + if runtime.GOOS == "linux" { // do not inherit legacy API for OSes supported in the future + // v1 registry + endpoints = append(endpoints, APIEndpoint{ + URL: DefaultV1Registry, + Version: APIVersion1, + Official: true, + TrimHostname: true, + TLSConfig: tlsConfig, + }) + } return endpoints, nil }