From 26a3a4942fedfb70ee596df0b24189bd45fc8c38 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Thu, 27 Mar 2025 11:26:42 +0100 Subject: [PATCH] First draft of ServiceInstance model --- src/servala/core/models/service.py | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py index 9bd97b9..8bde496 100644 --- a/src/servala/core/models/service.py +++ b/src/servala/core/models/service.py @@ -404,3 +404,35 @@ class ServiceOffering(ServalaModelMixin, models.Model): return _("{service_name} at {provider_name}").format( service_name=self.service.name, provider_name=self.provider.name ) + + +class ServiceInstance(ServalaModelMixin, models.Model): + """ + The source of truth for service instances is Kubernetes. + The Django model only contains metadata, all other information is queried + on the fly. + """ + + name = models.CharField(max_length=100, verbose_name=_("Name")) + organization = models.ForeignKey( + to="core.Organization", + on_delete=models.PROTECT, + verbose_name=_("Organization"), + related_name="service_instances", + ) + created_by = models.ForeignKey( + to="core.User", + on_delete=models.SET_NULL, + null=True, + blank=True, + related_name="created_service_instances", + ) + context = models.ForeignKey( + to="core.ServiceOfferingControlPlane", + related_name="service_instances", + on_delete=models.PROTECT, + ) + + class Meta: + verbose_name = _("Service instance") + verbose_name_plural = _("Service instances")