From d37d843417ac3332333f058ab4e764bfc3beaf32 Mon Sep 17 00:00:00 2001 From: Nightknight3000 Date: Fri, 16 Aug 2024 12:54:55 +0200 Subject: [PATCH] fix: add dynamic messagebroker ip retrieval --- src/k8s/kubernetes.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/k8s/kubernetes.py b/src/k8s/kubernetes.py index 1252362..ccd9874 100644 --- a/src/k8s/kubernetes.py +++ b/src/k8s/kubernetes.py @@ -174,6 +174,12 @@ def _create_nginx_config_map(analysis_name: str, message_broker_service_ip = core_client.read_namespaced_service(name=message_broker_service_name, namespace=namespace).spec.cluster_ip + message_broker_pod_name = get_element_by_substring(get_pod_names(namespace), 'message-broker') + message_broker_pod_list = core_client.list_namespaced_pod(label_selector=f"name={message_broker_pod_name}", + watch=False, + namespace=namespace) + message_broker_ip = message_broker_pod_list.items[0].status.pod_ip + # wait until analysis pod receives a cluster ip analysis_ip = None while analysis_ip is None: @@ -246,7 +252,7 @@ def _create_nginx_config_map(analysis_name: str, location /analysis {{ rewrite ^/analysis(/.*) $1 break; proxy_pass http://{analysis_service_name}; - allow {message_broker_service_ip}; + allow {message_broker_ip}; deny all; }} }} @@ -363,6 +369,11 @@ def get_service_names(namespace: str = 'default') -> list[str]: return [service.metadata.name for service in core_client.list_namespaced_service(namespace=namespace).items] +def get_pod_names(namespace: str = 'default') -> list[str]: + core_client = client.CoreV1Api() + return [pod.metadata.name for pod in core_client.list_namespaced_pod(namespace=namespace).items] + + def _get_pods(name: str, namespace: str = 'default') -> list[str]: core_client = client.CoreV1Api() return [pod.metadata.name