mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Ensure service routing resolves kubernetes.default.svc correctly
This commit is contained in:
parent
1ee2ac07c1
commit
fe23fa3eee
@ -507,6 +507,13 @@ func BuildGenericConfig(
|
||||
versionedInformers.Core().V1().Services().Lister(),
|
||||
)
|
||||
}
|
||||
// resolve kubernetes.default.svc locally
|
||||
localHost, err := url.Parse(genericConfig.LoopbackClientConfig.Host)
|
||||
if err != nil {
|
||||
lastErr = err
|
||||
return
|
||||
}
|
||||
serviceResolver = aggregatorapiserver.NewLoopbackServiceResolver(serviceResolver, localHost)
|
||||
|
||||
genericConfig.Authentication.Authenticator, genericConfig.OpenAPIConfig.SecurityDefinitions, err = BuildAuthenticator(s, clientgoExternalClient, sharedInformers)
|
||||
if err != nil {
|
||||
|
@ -61,3 +61,23 @@ type aggregatorClusterRouting struct {
|
||||
func (r *aggregatorClusterRouting) ResolveEndpoint(namespace, name string) (*url.URL, error) {
|
||||
return proxy.ResolveCluster(r.services, namespace, name)
|
||||
}
|
||||
|
||||
// NewLoopbackServiceResolver returns a ServiceResolver that routes the kubernetes/default service to loopback.
|
||||
func NewLoopbackServiceResolver(delegate ServiceResolver, host *url.URL) ServiceResolver {
|
||||
return &loopbackResolver{
|
||||
delegate: delegate,
|
||||
host: host,
|
||||
}
|
||||
}
|
||||
|
||||
type loopbackResolver struct {
|
||||
delegate ServiceResolver
|
||||
host *url.URL
|
||||
}
|
||||
|
||||
func (r *loopbackResolver) ResolveEndpoint(namespace, name string) (*url.URL, error) {
|
||||
if namespace == "default" && name == "kubernetes" {
|
||||
return r.host, nil
|
||||
}
|
||||
return r.delegate.ResolveEndpoint(namespace, name)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user