From b297643ef797b80e34fe7782795bab01c6c8b4aa Mon Sep 17 00:00:00 2001 From: Malar Invention Date: Sun, 12 Jan 2025 13:13:39 +0530 Subject: [PATCH] fix: load gateway services from yaml --- node-external-ip-controller.Dockerfile | 3 ++- node_external_ip_controller_async.py | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/node-external-ip-controller.Dockerfile b/node-external-ip-controller.Dockerfile index f8ed082..69f4d9d 100644 --- a/node-external-ip-controller.Dockerfile +++ b/node-external-ip-controller.Dockerfile @@ -2,10 +2,11 @@ FROM python:3.13-alpine3.19 # Install the Kubernetes Python client -RUN pip install kubernetes kubernetes_asyncio +RUN pip install kubernetes kubernetes_asyncio PyYAML # Copy the controller script into the container COPY node_external_ip_controller_async.py /app/node_external_ip_controller.py +COPY gateway_services.yaml /app/gateway_services.yaml # Set the working directory WORKDIR /app diff --git a/node_external_ip_controller_async.py b/node_external_ip_controller_async.py index e960ce0..0bc817b 100644 --- a/node_external_ip_controller_async.py +++ b/node_external_ip_controller_async.py @@ -3,13 +3,14 @@ from kubernetes_asyncio import client, config, watch import os # Configuration -SERVICE_NAME = os.getenv( - "SERVICE_NAME", "traefik-tcp" -) # service name for truechart traefik helm -SERVICE_NAME_LABEL_PATTERN = os.getenv( - "SERVICE_NAME_LABEL_PATTERN", "app.kubernetes.io/name=traefik" -) -NAMESPACE = os.getenv("NAMESPACE", "kube-system") +import yaml + +with open("gateway_services.yaml", "r") as f: + gateway_services = yaml.safe_load(f) + +SERVICE_NAME = gateway_services["gateway_services"][0]["name"].split("/")[1] +SERVICE_NAME_LABEL_PATTERN = gateway_services["gateway_services"][0]["label_pattern"] +NAMESPACE = gateway_services["gateway_services"][0]["name"].split("/")[0] ANNOTATION_KEY = os.getenv("ANNOTATION_KEY", "kube-vip.io/loadbalancerIPs") ZERO_GATEWAY_IP = os.getenv("ZERO_GATEWAY_IP", "172.28.10.1") NODE_LABEL = os.getenv("NODE_LABEL", "svccontroller.k3s.cattle.io/enablelb=true")