mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 13:55:41 +00:00
OpenStack: Support loadbalancer client IP affinity
This commit is contained in:
parent
879bc3a677
commit
4ff292a65e
@ -427,10 +427,18 @@ func (lb *LoadBalancer) TCPLoadBalancerExists(name, region string) (bool, error)
|
|||||||
// each region.
|
// each region.
|
||||||
|
|
||||||
func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP net.IP, port int, hosts []string, affinity api.AffinityType) (string, error) {
|
func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP net.IP, port int, hosts []string, affinity api.AffinityType) (string, error) {
|
||||||
glog.V(2).Infof("CreateTCPLoadBalancer(%v, %v, %v, %v, %v)", name, region, externalIP, port, hosts)
|
glog.V(2).Infof("CreateTCPLoadBalancer(%v, %v, %v, %v, %v, %v)", name, region, externalIP, port, hosts, affinity)
|
||||||
if affinity != api.AffinityTypeNone {
|
|
||||||
|
var persistence *vips.SessionPersistence
|
||||||
|
switch affinity {
|
||||||
|
case api.AffinityTypeNone:
|
||||||
|
persistence = nil
|
||||||
|
case api.AffinityTypeClientIP:
|
||||||
|
persistence = &vips.SessionPersistence{Type: "SOURCE_IP"}
|
||||||
|
default:
|
||||||
return "", fmt.Errorf("unsupported load balancer affinity: %v", affinity)
|
return "", fmt.Errorf("unsupported load balancer affinity: %v", affinity)
|
||||||
}
|
}
|
||||||
|
|
||||||
pool, err := pools.Create(lb.network, pools.CreateOpts{
|
pool, err := pools.Create(lb.network, pools.CreateOpts{
|
||||||
Name: name,
|
Name: name,
|
||||||
Protocol: pools.ProtocolTCP,
|
Protocol: pools.ProtocolTCP,
|
||||||
@ -485,6 +493,7 @@ func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP ne
|
|||||||
Protocol: "TCP",
|
Protocol: "TCP",
|
||||||
ProtocolPort: port,
|
ProtocolPort: port,
|
||||||
PoolID: pool.ID,
|
PoolID: pool.ID,
|
||||||
|
Persistence: persistence,
|
||||||
}).Extract()
|
}).Extract()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if mon != nil {
|
if mon != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user