From 2f769e0e2e3aa93c05d2806ef09b9978fe7ea293 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Fri, 28 Mar 2025 13:46:55 +0100 Subject: [PATCH] Remove unneeded fields from spec --- src/servala/core/crd.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/servala/core/crd.py b/src/servala/core/crd.py index a164b1a..8fd20cd 100644 --- a/src/servala/core/crd.py +++ b/src/servala/core/crd.py @@ -28,12 +28,15 @@ def generate_django_model(schema, group, version, kind): """ Generates a virtual Django model from a Kubernetes CRD's OpenAPI v3 schema. """ - spec = schema["properties"].get("spec") or {} - # defaults = {"apiVersion": f"{group}/{version}", "kind": kind} - + # We always need these three fields to know our own name and our full namespace model_fields = {"__module__": "crd_models"} for field_name in ("name", "organization", "context"): model_fields[field_name] = duplicate_field(field_name, ServiceInstance) + + # All other fields are generated from the schema, except for the + # resourceRef object + spec = schema["properties"].get("spec") or {} + spec["properties"].pop("resourceRef", None) model_fields.update(build_object_fields(spec, "spec")) meta_class = type("Meta", (), {"app_label": "crd_models"})