fix: edge cases
parent
69a595e708
commit
971cbb667f
|
|
@ -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}")
|
||||
|
|
|
|||
Loading…
Reference in New Issue