From 17b90e18ca2ccad26e030c3fc25f0dce17ae79c0 Mon Sep 17 00:00:00 2001 From: Malar Invention Date: Thu, 31 Oct 2024 23:05:46 +0530 Subject: [PATCH] filter based on node label being set to enablelb --- node_external_ip_controller.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/node_external_ip_controller.py b/node_external_ip_controller.py index 7e53b20..41f5d32 100644 --- a/node_external_ip_controller.py +++ b/node_external_ip_controller.py @@ -11,7 +11,7 @@ v1 = client.CoreV1Api() SERVICE_NAME = "traefik" NAMESPACE = "kube-system" ANNOTATION_KEY = "kube-vip.io/loadbalancerIPs" -NODE_ANNOTATION_KEY = "svccontroller.k3s.cattle.io/enablelb" +NODE_LABEL = "svccontroller.k3s.cattle.io/enablelb=true" def update_service_annotation(external_ip): @@ -31,12 +31,11 @@ def main(): w = watch.Watch() while True: try: - for event in w.stream(v1.list_node, _request_timeout=300): + for event in w.stream( + v1.list_node, label_selector=NODE_LABEL, _request_timeout=300 + ): node = event["object"] node_name = node.metadata.name - print(f"Node annotations: {node.metadata.annotations}") - is_gateway = node.metadata.annotations.get(NODE_ANNOTATION_KEY, False) - print(f"{node_name} is gateway?: {is_gateway}, type:{type(is_gateway)}") # Extract the external IP if it exists external_ip = None