From 971cbb667f32de5a77fc6cc6073eaa7ffd1c4835 Mon Sep 17 00:00:00 2001 From: Malar Invention Date: Sun, 12 Jan 2025 19:19:32 +0530 Subject: [PATCH] fix: edge cases --- node_external_ip_controller_async.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/node_external_ip_controller_async.py b/node_external_ip_controller_async.py index 1cbebbb..4ee6206 100644 --- a/node_external_ip_controller_async.py +++ b/node_external_ip_controller_async.py @@ -95,6 +95,9 @@ async def watch_nodes(v1, external_ips_update_queue): f"External IPs for node {node.metadata.name}: {external_ips}" ) external_node_ips = list(external_node_ipset) + # remove old ip lists before populating + while not external_ips_update_queue.empty(): + _previous_external_ips = await external_ips_update_queue.get() await external_ips_update_queue.put(external_node_ips) logger.debug(f"Added external IPs to update queue: {external_node_ips}") @@ -125,13 +128,10 @@ async def watch_services(v1, external_ips_update_queue): logger.debug( f"Processing event type: {event['type']} for service: {service.metadata.name}" ) - while True: - # maintain only last set of external_ips by popping everything - # and putting back the final one when it runs empty - external_ips = await external_ips_update_queue.get() - if external_ips_update_queue.empty(): - await external_ips_update_queue.put(external_ips) - break + external_ips = await external_ips_update_queue.get() + # put back the last one if it turns empty + if external_ips_update_queue.empty(): + await external_ips_update_queue.put(external_ips) logger.debug(f"Retrieved external IPs: {external_ips}") await update_service_annotation(v1, service, external_ips) logger.debug(f"Service updated: {service.metadata.name}")