diff --git a/kuryr_kubernetes/controller/handlers/lbaas.py b/kuryr_kubernetes/controller/handlers/lbaas.py index 2f8aa7943..2b767515c 100644 --- a/kuryr_kubernetes/controller/handlers/lbaas.py +++ b/kuryr_kubernetes/controller/handlers/lbaas.py @@ -342,7 +342,8 @@ class LoadBalancerHandler(k8s_base.ResourceEventHandler): p.port] except KeyError: continue - current_targets = {(str(m.ip), m.port) for m in lbaas_state.members} + current_targets = {(str(m.ip), m.port, m.pool_id) + for m in lbaas_state.members} for subset in endpoints.get('subsets', []): subset_ports = subset.get('ports', []) @@ -358,10 +359,10 @@ class LoadBalancerHandler(k8s_base.ResourceEventHandler): continue for subset_port in subset_ports: target_port = subset_port['port'] - if (target_ip, target_port) in current_targets: - continue port_name = subset_port.get('name') pool = pool_by_tgt_name[port_name] + if (target_ip, target_port, pool.id) in current_targets: + continue # TODO(apuimedo): Do not pass subnet_id at all when in # L3 mode once old neutron-lbaasv2 is not supported, as # octavia does not require it