mirror of https://github.com/k3s-io/k3s
remove hard code of session affinity timeout in win-proxy
parent
6e2249b784
commit
46b4614c5d
|
@ -93,7 +93,7 @@ type serviceInfo struct {
|
||||||
targetPort int
|
targetPort int
|
||||||
loadBalancerStatus api.LoadBalancerStatus
|
loadBalancerStatus api.LoadBalancerStatus
|
||||||
sessionAffinityType api.ServiceAffinity
|
sessionAffinityType api.ServiceAffinity
|
||||||
stickyMaxAgeMinutes int
|
stickyMaxAgeSeconds int
|
||||||
externalIPs []*externalIPInfo
|
externalIPs []*externalIPInfo
|
||||||
loadBalancerIngressIPs []*loadBalancerIngressInfo
|
loadBalancerIngressIPs []*loadBalancerIngressInfo
|
||||||
loadBalancerSourceRanges []string
|
loadBalancerSourceRanges []string
|
||||||
|
@ -165,6 +165,12 @@ func newServiceInfo(svcPortName proxy.ServicePortName, port *api.ServicePort, se
|
||||||
onlyNodeLocalEndpoints = true
|
onlyNodeLocalEndpoints = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set default session sticky max age 180min=10800s
|
||||||
|
stickyMaxAgeSeconds := 10800
|
||||||
|
if service.Spec.SessionAffinity == api.ServiceAffinityClientIP {
|
||||||
|
// Kube-apiserver side guarantees SessionAffinityConfig won't be nil when session affinity type is ClientIP
|
||||||
|
stickyMaxAgeSeconds = int(*service.Spec.SessionAffinityConfig.ClientIP.TimeoutSeconds)
|
||||||
|
}
|
||||||
info := &serviceInfo{
|
info := &serviceInfo{
|
||||||
clusterIP: net.ParseIP(service.Spec.ClusterIP),
|
clusterIP: net.ParseIP(service.Spec.ClusterIP),
|
||||||
port: int(port.Port),
|
port: int(port.Port),
|
||||||
|
@ -174,7 +180,7 @@ func newServiceInfo(svcPortName proxy.ServicePortName, port *api.ServicePort, se
|
||||||
// Deep-copy in case the service instance changes
|
// Deep-copy in case the service instance changes
|
||||||
loadBalancerStatus: *helper.LoadBalancerStatusDeepCopy(&service.Status.LoadBalancer),
|
loadBalancerStatus: *helper.LoadBalancerStatusDeepCopy(&service.Status.LoadBalancer),
|
||||||
sessionAffinityType: service.Spec.SessionAffinity,
|
sessionAffinityType: service.Spec.SessionAffinity,
|
||||||
stickyMaxAgeMinutes: 180, // TODO: paramaterize this in the API.
|
stickyMaxAgeSeconds: stickyMaxAgeSeconds,
|
||||||
loadBalancerSourceRanges: make([]string, len(service.Spec.LoadBalancerSourceRanges)),
|
loadBalancerSourceRanges: make([]string, len(service.Spec.LoadBalancerSourceRanges)),
|
||||||
onlyNodeLocalEndpoints: onlyNodeLocalEndpoints,
|
onlyNodeLocalEndpoints: onlyNodeLocalEndpoints,
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,8 @@ import (
|
||||||
|
|
||||||
func newFakeServiceInfo(service proxy.ServicePortName, ip net.IP, port int, protocol api.Protocol, onlyNodeLocalEndpoints bool) *serviceInfo {
|
func newFakeServiceInfo(service proxy.ServicePortName, ip net.IP, port int, protocol api.Protocol, onlyNodeLocalEndpoints bool) *serviceInfo {
|
||||||
return &serviceInfo{
|
return &serviceInfo{
|
||||||
sessionAffinityType: api.ServiceAffinityNone, // default
|
sessionAffinityType: api.ServiceAffinityNone, // default
|
||||||
stickyMaxAgeMinutes: 180,
|
stickyMaxAgeSeconds: int(api.DefaultClientIPServiceAffinitySeconds), // default
|
||||||
clusterIP: ip,
|
clusterIP: ip,
|
||||||
port: port,
|
port: port,
|
||||||
protocol: protocol,
|
protocol: protocol,
|
||||||
|
|
Loading…
Reference in New Issue