mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -04:00 
			
		
		
		
	mw/kubernetes: revert if-else for health (#970)
Do the return early and dedent the rest of the function.
This commit is contained in:
		| @@ -154,69 +154,71 @@ func (k *Kubernetes) getClientConfig() (*rest.Config, error) { | |||||||
| 	overrides := &clientcmd.ConfigOverrides{} | 	overrides := &clientcmd.ConfigOverrides{} | ||||||
| 	clusterinfo := clientcmdapi.Cluster{} | 	clusterinfo := clientcmdapi.Cluster{} | ||||||
| 	authinfo := clientcmdapi.AuthInfo{} | 	authinfo := clientcmdapi.AuthInfo{} | ||||||
| 	if len(k.APIServerList) > 0 { |  | ||||||
| 		endpoint := k.APIServerList[0] |  | ||||||
| 		if len(k.APIServerList) > 1 { |  | ||||||
| 			// Use a random port for api proxy, will get the value later through listener.Addr() |  | ||||||
| 			listener, err := net.Listen("tcp", "127.0.0.1:0") |  | ||||||
| 			if err != nil { |  | ||||||
| 				return nil, fmt.Errorf("failed to create kubernetes api proxy: %v", err) |  | ||||||
| 			} |  | ||||||
| 			k.APIProxy = &apiProxy{ |  | ||||||
| 				listener: listener, |  | ||||||
| 				handler: proxyHandler{ |  | ||||||
| 					HealthCheck: healthcheck.HealthCheck{ |  | ||||||
| 						FailTimeout: 3 * time.Second, |  | ||||||
| 						MaxFails:    1, |  | ||||||
| 						Future:      10 * time.Second, |  | ||||||
| 						Path:        "/", |  | ||||||
| 						Interval:    5 * time.Second, |  | ||||||
| 					}, |  | ||||||
| 				}, |  | ||||||
| 			} |  | ||||||
| 			k.APIProxy.handler.Hosts = make([]*healthcheck.UpstreamHost, len(k.APIServerList)) |  | ||||||
| 			for i, entry := range k.APIServerList { |  | ||||||
|  |  | ||||||
| 				uh := &healthcheck.UpstreamHost{ | 	if len(k.APIServerList) == 0 { | ||||||
| 					Name: strings.TrimPrefix(entry, "http://"), |  | ||||||
|  |  | ||||||
| 					CheckDown: func(upstream *proxyHandler) healthcheck.UpstreamHostDownFunc { |  | ||||||
| 						return func(uh *healthcheck.UpstreamHost) bool { |  | ||||||
|  |  | ||||||
| 							down := false |  | ||||||
|  |  | ||||||
| 							uh.CheckMu.Lock() |  | ||||||
| 							until := uh.OkUntil |  | ||||||
| 							uh.CheckMu.Unlock() |  | ||||||
|  |  | ||||||
| 							if !until.IsZero() && time.Now().After(until) { |  | ||||||
| 								down = true |  | ||||||
| 							} |  | ||||||
|  |  | ||||||
| 							fails := atomic.LoadInt32(&uh.Fails) |  | ||||||
| 							if fails >= upstream.MaxFails && upstream.MaxFails != 0 { |  | ||||||
| 								down = true |  | ||||||
| 							} |  | ||||||
| 							return down |  | ||||||
| 						} |  | ||||||
| 					}(&k.APIProxy.handler), |  | ||||||
| 				} |  | ||||||
|  |  | ||||||
| 				k.APIProxy.handler.Hosts[i] = uh |  | ||||||
| 			} |  | ||||||
| 			k.APIProxy.Handler = &k.APIProxy.handler |  | ||||||
|  |  | ||||||
| 			// Find the random port used for api proxy |  | ||||||
| 			endpoint = fmt.Sprintf("http://%s", listener.Addr()) |  | ||||||
| 		} |  | ||||||
| 		clusterinfo.Server = endpoint |  | ||||||
| 	} else { |  | ||||||
| 		cc, err := rest.InClusterConfig() | 		cc, err := rest.InClusterConfig() | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 		return cc, err | 		return cc, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	endpoint := k.APIServerList[0] | ||||||
|  | 	if len(k.APIServerList) > 1 { | ||||||
|  | 		// Use a random port for api proxy, will get the value later through listener.Addr() | ||||||
|  | 		listener, err := net.Listen("tcp", "127.0.0.1:0") | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, fmt.Errorf("failed to create kubernetes api proxy: %v", err) | ||||||
|  | 		} | ||||||
|  | 		k.APIProxy = &apiProxy{ | ||||||
|  | 			listener: listener, | ||||||
|  | 			handler: proxyHandler{ | ||||||
|  | 				HealthCheck: healthcheck.HealthCheck{ | ||||||
|  | 					FailTimeout: 3 * time.Second, | ||||||
|  | 					MaxFails:    1, | ||||||
|  | 					Future:      10 * time.Second, | ||||||
|  | 					Path:        "/", | ||||||
|  | 					Interval:    5 * time.Second, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		} | ||||||
|  | 		k.APIProxy.handler.Hosts = make([]*healthcheck.UpstreamHost, len(k.APIServerList)) | ||||||
|  | 		for i, entry := range k.APIServerList { | ||||||
|  |  | ||||||
|  | 			uh := &healthcheck.UpstreamHost{ | ||||||
|  | 				Name: strings.TrimPrefix(entry, "http://"), | ||||||
|  |  | ||||||
|  | 				CheckDown: func(upstream *proxyHandler) healthcheck.UpstreamHostDownFunc { | ||||||
|  | 					return func(uh *healthcheck.UpstreamHost) bool { | ||||||
|  |  | ||||||
|  | 						down := false | ||||||
|  |  | ||||||
|  | 						uh.CheckMu.Lock() | ||||||
|  | 						until := uh.OkUntil | ||||||
|  | 						uh.CheckMu.Unlock() | ||||||
|  |  | ||||||
|  | 						if !until.IsZero() && time.Now().After(until) { | ||||||
|  | 							down = true | ||||||
|  | 						} | ||||||
|  |  | ||||||
|  | 						fails := atomic.LoadInt32(&uh.Fails) | ||||||
|  | 						if fails >= upstream.MaxFails && upstream.MaxFails != 0 { | ||||||
|  | 							down = true | ||||||
|  | 						} | ||||||
|  | 						return down | ||||||
|  | 					} | ||||||
|  | 				}(&k.APIProxy.handler), | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			k.APIProxy.handler.Hosts[i] = uh | ||||||
|  | 		} | ||||||
|  | 		k.APIProxy.Handler = &k.APIProxy.handler | ||||||
|  |  | ||||||
|  | 		// Find the random port used for api proxy | ||||||
|  | 		endpoint = fmt.Sprintf("http://%s", listener.Addr()) | ||||||
|  | 	} | ||||||
|  | 	clusterinfo.Server = endpoint | ||||||
|  |  | ||||||
| 	if len(k.APICertAuth) > 0 { | 	if len(k.APICertAuth) > 0 { | ||||||
| 		clusterinfo.CertificateAuthority = k.APICertAuth | 		clusterinfo.CertificateAuthority = k.APICertAuth | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user