From 1f9f45baf57e8ccf8a528a688650e4329dee9981 Mon Sep 17 00:00:00 2001 From: Malar Invention Date: Thu, 31 Oct 2024 22:32:17 +0530 Subject: [PATCH] update service annotation with ip of node that is set as gateway --- node_external_ip_controller.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/node_external_ip_controller.py b/node_external_ip_controller.py index f093e67..522333d 100644 --- a/node_external_ip_controller.py +++ b/node_external_ip_controller.py @@ -11,6 +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" def update_service_annotation(external_ip): @@ -31,11 +32,13 @@ def main(): for event in w.stream(v1.list_node, _request_timeout=60): node = event["object"] node_name = node.metadata.name + is_gateway = node.metadata.annotations.get(NODE_ANNOTATION_KEY) + print(f"{node_name} is gateway?: {is_gateway}, type:{type(is_gateway)}") # Extract the external IP if it exists external_ip = None for address in node.status.addresses: - if address.type == "ExternalIP": + if address.type == "ExternalIP" and is_gateway == True: external_ip = address.address break