From c4522e31e873ea3f548a6fa5085876bfde054251 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Fri, 11 Apr 2025 09:53:47 +0200 Subject: [PATCH] Implement k8s instance retrieval --- src/servala/core/models/service.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py index d421f8b..7280eaa 100644 --- a/src/servala/core/models/service.py +++ b/src/servala/core/models/service.py @@ -564,3 +564,23 @@ class ServiceInstance(ServalaModelMixin, models.Model): raise ValidationError(_("Kubernetes API error: {}").format(str(e))) raise ValidationError(_("Error creating instance: {}").format(str(e))) return instance + + @cached_property + def kubernetes_object(self): + """Fetch the Kubernetes custom resource object""" + try: + api_instance = client.CustomObjectsApi( + self.context.control_plane.get_kubernetes_client() + ) + + return api_instance.get_namespaced_custom_object( + group=self.context.group, + version=self.context.version, + namespace=self.organization.namespace, + plural=self.context.kind_plural, + name=self.name, + ) + except ApiException as e: + if e.status == 404: + return None + raise