|
@@ -113,36 +113,42 @@ func (s *Service) tlsConfigForMirror(mirror string) (*tls.Config, error) {
|
|
|
// It gives preference to v2 endpoints over v1, mirrors over the actual
|
|
|
// registry, and HTTPS over plain HTTP.
|
|
|
func (s *Service) LookupPullEndpoints(repoName string) (endpoints []APIEndpoint, err error) {
|
|
|
- return s.lookupEndpoints(repoName, false)
|
|
|
+ return s.lookupEndpoints(repoName)
|
|
|
}
|
|
|
|
|
|
// LookupPushEndpoints creates an list of endpoints to try to push to, in order of preference.
|
|
|
// It gives preference to v2 endpoints over v1, and HTTPS over plain HTTP.
|
|
|
// Mirrors are not included.
|
|
|
func (s *Service) LookupPushEndpoints(repoName string) (endpoints []APIEndpoint, err error) {
|
|
|
- return s.lookupEndpoints(repoName, true)
|
|
|
+ allEndpoints, err := s.lookupEndpoints(repoName)
|
|
|
+ if err == nil {
|
|
|
+ for _, endpoint := range allEndpoints {
|
|
|
+ if !endpoint.Mirror {
|
|
|
+ endpoints = append(endpoints, endpoint)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return endpoints, err
|
|
|
}
|
|
|
|
|
|
-func (s *Service) lookupEndpoints(repoName string, isPush bool) (endpoints []APIEndpoint, err error) {
|
|
|
+func (s *Service) lookupEndpoints(repoName string) (endpoints []APIEndpoint, err error) {
|
|
|
var cfg = tlsconfig.ServerDefault
|
|
|
tlsConfig := &cfg
|
|
|
if strings.HasPrefix(repoName, DefaultNamespace+"/") {
|
|
|
- if !isPush {
|
|
|
- // v2 mirrors for pull only
|
|
|
- for _, mirror := range s.Config.Mirrors {
|
|
|
- mirrorTLSConfig, err := s.tlsConfigForMirror(mirror)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- endpoints = append(endpoints, APIEndpoint{
|
|
|
- URL: mirror,
|
|
|
- // guess mirrors are v2
|
|
|
- Version: APIVersion2,
|
|
|
- Mirror: true,
|
|
|
- TrimHostname: true,
|
|
|
- TLSConfig: mirrorTLSConfig,
|
|
|
- })
|
|
|
+ // v2 mirrors
|
|
|
+ for _, mirror := range s.Config.Mirrors {
|
|
|
+ mirrorTLSConfig, err := s.tlsConfigForMirror(mirror)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
}
|
|
|
+ endpoints = append(endpoints, APIEndpoint{
|
|
|
+ URL: mirror,
|
|
|
+ // guess mirrors are v2
|
|
|
+ Version: APIVersion2,
|
|
|
+ Mirror: true,
|
|
|
+ TrimHostname: true,
|
|
|
+ TLSConfig: mirrorTLSConfig,
|
|
|
+ })
|
|
|
}
|
|
|
// v2 registry
|
|
|
endpoints = append(endpoints, APIEndpoint{
|