mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +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(),
|
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)
|
genericConfig.Authentication.Authenticator, genericConfig.OpenAPIConfig.SecurityDefinitions, err = BuildAuthenticator(s, clientgoExternalClient, sharedInformers)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -61,3 +61,23 @@ type aggregatorClusterRouting struct {
|
|||||||
func (r *aggregatorClusterRouting) ResolveEndpoint(namespace, name string) (*url.URL, error) {
|
func (r *aggregatorClusterRouting) ResolveEndpoint(namespace, name string) (*url.URL, error) {
|
||||||
return proxy.ResolveCluster(r.services, namespace, name)
|
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