From 6be20fd92f36b3ff1dfa496a8b87097c1bdf0a16 Mon Sep 17 00:00:00 2001 From: Hoid Date: Mon, 29 Apr 2024 13:49:05 -0400 Subject: [PATCH 1/3] fix: Initial commit --- tycho/kube.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tycho/kube.py b/tycho/kube.py index 2595a4a..7ac63f1 100644 --- a/tycho/kube.py +++ b/tycho/kube.py @@ -90,8 +90,10 @@ def check_volumes(self, volumes, namespace): def is_ambassador_context(self, namespace): try: - api_response = self.api.list_namespaced_service(field_selector="metadata.name=ambassador", namespace=namespace) - if len(api_response.items) > 0: + field_sel_api_response = self.api.list_namespaced_service(field_selector="metadata.name=ambassador", namespace=namespace) + label_sel_api_response = self.api.list_namespaced_service(label_selector="app=ambassador", namespace=namespace) + num_of_services = len(field_sel_api_response) + len(label_sel_api_response) + if num_of_services > 0: return True else: return False From 2216c7baa5e1cc264d3659b194e4f476a224a134 Mon Sep 17 00:00:00 2001 From: Hoid Date: Wed, 1 May 2024 14:17:27 -0400 Subject: [PATCH 2/3] fix: Fix bug where the api response items weren't dereferenced before running len() --- tycho/kube.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tycho/kube.py b/tycho/kube.py index 158f0ac..2c8f737 100644 --- a/tycho/kube.py +++ b/tycho/kube.py @@ -92,7 +92,7 @@ def is_ambassador_context(self, namespace): try: field_sel_api_response = self.api.list_namespaced_service(field_selector="metadata.name=ambassador", namespace=namespace) label_sel_api_response = self.api.list_namespaced_service(label_selector="app=ambassador", namespace=namespace) - num_of_services = len(field_sel_api_response) + len(label_sel_api_response) + num_of_services = len(field_sel_api_response.items) + len(label_sel_api_response.items) if num_of_services > 0: return True else: From 34e22eb2fa0bc244d4408e1f2f179fdde236911b Mon Sep 17 00:00:00 2001 From: Hoid Date: Tue, 7 May 2024 08:49:13 -0400 Subject: [PATCH 3/3] feat: Add ambassador svc name variable as env var --- tycho/kube.py | 15 +++++---------- tycho/model.py | 1 + 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/tycho/kube.py b/tycho/kube.py index 2c8f737..9abe2ea 100644 --- a/tycho/kube.py +++ b/tycho/kube.py @@ -88,17 +88,12 @@ def check_volumes(self, volumes, namespace): logger.debug(f"Raising persistent volume claim exception. {e}") #raise - def is_ambassador_context(self, namespace): + def is_ambassador_context(self, namespace, ambassador_service_name): try: - field_sel_api_response = self.api.list_namespaced_service(field_selector="metadata.name=ambassador", namespace=namespace) - label_sel_api_response = self.api.list_namespaced_service(label_selector="app=ambassador", namespace=namespace) - num_of_services = len(field_sel_api_response.items) + len(label_sel_api_response.items) - if num_of_services > 0: - return True - else: - return False + field_sel_api_response = self.api.list_namespaced_service(field_selector=f"metadata.name={ambassador_service_name}", namespace=namespace) + return len(field_sel_api_response.items) == 1 except ApiException as e: - logger.info(f"Amabassador is not configured.") + logger.info(f"There was a problem assessing whether the ambassador service is running.", e) def start (self, system, namespace="default"): """ Start an abstractly described distributed system on the cluster. @@ -121,7 +116,7 @@ def start (self, system, namespace="default"): systemVolumesCopy.append(value) system.volumes = systemVolumesCopy """ Check the status of ambassador """ - amb_status = self.is_ambassador_context(namespace) + amb_status = self.is_ambassador_context(namespace, system.ambassador_service_name) if amb_status: system.amb = True #api_response = self.api.list_namespace() diff --git a/tycho/model.py b/tycho/model.py index a41b653..83175d2 100644 --- a/tycho/model.py +++ b/tycho/model.py @@ -253,6 +253,7 @@ def __init__(self, config, name, principal, service_account, conn_string, proxy_ self.gitea_host = os.environ.get("GITEA_HOST", " ") self.gitea_user = os.environ.get("GITEA_USER", " ") self.gitea_service_name = os.environ.get("GITEA_SERVICE_NAME", " ") + self.ambassador_service_name = os.environ.get("AMBASSADOR_SVC_NAME", "") @staticmethod def set_security_context(sc_from_registry):