Browse Source

c8d: Don't create authorizer for empty AuthConfig

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
Paweł Gronowski 2 years ago
parent
commit
3309e45ca1
1 changed files with 14 additions and 8 deletions
  1. 14 8
      daemon/containerd/resolver.go

+ 14 - 8
daemon/containerd/resolver.go

@@ -24,7 +24,15 @@ func (i *ImageService) newResolverFromAuthConfig(authConfig *registrytypes.AuthC
 	}), tracker
 	}), tracker
 }
 }
 
 
-func hostsWrapper(hostsFn docker.RegistryHosts, authConfig *registrytypes.AuthConfig, regService RegistryConfigProvider) docker.RegistryHosts {
+func hostsWrapper(hostsFn docker.RegistryHosts, optAuthConfig *registrytypes.AuthConfig, regService RegistryConfigProvider) docker.RegistryHosts {
+	var authorizer docker.Authorizer
+	if optAuthConfig != nil {
+		auth := *optAuthConfig
+		if auth != (registrytypes.AuthConfig{}) {
+			authorizer = docker.NewDockerAuthorizer(authorizationCredsFromAuthConfig(auth))
+		}
+	}
+
 	return func(n string) ([]docker.RegistryHost, error) {
 	return func(n string) ([]docker.RegistryHost, error) {
 		hosts, err := hostsFn(n)
 		hosts, err := hostsFn(n)
 		if err != nil {
 		if err != nil {
@@ -33,12 +41,7 @@ func hostsWrapper(hostsFn docker.RegistryHosts, authConfig *registrytypes.AuthCo
 
 
 		for i := range hosts {
 		for i := range hosts {
 			if hosts[i].Authorizer == nil {
 			if hosts[i].Authorizer == nil {
-				var opts []docker.AuthorizerOpt
-				if authConfig != nil {
-					opts = append(opts, authorizationCredsFromAuthConfig(*authConfig))
-				}
-				hosts[i].Authorizer = docker.NewDockerAuthorizer(opts...)
-
+				hosts[i].Authorizer = authorizer
 				isInsecure := regService.IsInsecureRegistry(hosts[i].Host)
 				isInsecure := regService.IsInsecureRegistry(hosts[i].Host)
 				if hosts[i].Client.Transport != nil && isInsecure {
 				if hosts[i].Client.Transport != nil && isInsecure {
 					hosts[i].Client.Transport = httpFallback{super: hosts[i].Client.Transport}
 					hosts[i].Client.Transport = httpFallback{super: hosts[i].Client.Transport}
@@ -57,7 +60,10 @@ func authorizationCredsFromAuthConfig(authConfig registrytypes.AuthConfig) docke
 
 
 	return docker.WithAuthCreds(func(host string) (string, string, error) {
 	return docker.WithAuthCreds(func(host string) (string, string, error) {
 		if cfgHost != host {
 		if cfgHost != host {
-			logrus.WithField("host", host).WithField("cfgHost", cfgHost).Warn("Host doesn't match")
+			logrus.WithFields(logrus.Fields{
+				"host":    host,
+				"cfgHost": cfgHost,
+			}).Warn("Host doesn't match")
 			return "", "", nil
 			return "", "", nil
 		}
 		}
 		if authConfig.IdentityToken != "" {
 		if authConfig.IdentityToken != "" {