From 9f8749ee32fb202ddda194c4b3a07feb5bb5db5b Mon Sep 17 00:00:00 2001 From: Francois Poinsot Date: Mon, 31 Jul 2023 13:31:30 +0200 Subject: [PATCH] add x-kubernetes-preserve-unknown-fields handling skip setting "additionalProperties: false" when x-kubernetes-preserve-unknown-fields == true --- scripts/openapi2jsonschema.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/openapi2jsonschema.py b/scripts/openapi2jsonschema.py index 6cda017..dc486c3 100755 --- a/scripts/openapi2jsonschema.py +++ b/scripts/openapi2jsonschema.py @@ -24,7 +24,8 @@ def additional_properties(data, skip=False): "This recreates the behaviour of kubectl at https://github.com/kubernetes/kubernetes/blob/225b9119d6a8f03fcbe3cc3d590c261965d928d0/pkg/kubectl/validation/schema.go#L312" if isinstance(data, dict): if "properties" in data and not skip: - if "additionalProperties" not in data: + preserve_unkown_field = "x-kubernetes-preserve-unknown-fields" in data and data["x-kubernetes-preserve-unknown-fields"] + if "additionalProperties" not in data and not preserve_unkown_field: data["additionalProperties"] = False for _, v in data.items(): additional_properties(v)