mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-15 14:14:39 +00:00
prune type in preserve-unknown-fields objects
Signed-off-by: Gautier Delorme <gautier.delorme@gmail.com>
This commit is contained in:
@@ -172,8 +172,7 @@ func TestNewBuilder(t *testing.T) {
|
||||
},
|
||||
"embedded-object": {
|
||||
"x-kubernetes-embedded-resource": true,
|
||||
"x-kubernetes-preserve-unknown-fields": true,
|
||||
"type":"object"
|
||||
"x-kubernetes-preserve-unknown-fields": true
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind":[{"group":"bar.k8s.io","kind":"Foo","version":"v1"}]
|
||||
|
@@ -81,6 +81,13 @@ func ToStructuralOpenAPIV2(in *structuralschema.Structural) *structuralschema.St
|
||||
changed = true
|
||||
}
|
||||
|
||||
if s.XPreserveUnknownFields && s.Type == "object" {
|
||||
// similar as above, kubectl doesn't properly handle object fields with `x-kubernetes-preserve-unknown-fields: true`
|
||||
s.Type = ""
|
||||
|
||||
changed = true
|
||||
}
|
||||
|
||||
for f, fs := range s.Properties {
|
||||
if fs.Nullable {
|
||||
s.ValueValidation.Required, changed = filterOut(s.ValueValidation.Required, f)
|
||||
|
@@ -666,8 +666,7 @@ func Test_ConvertJSONSchemaPropsToOpenAPIv2SchemaByType(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: withVendorExtensions(new(spec.Schema), "x-kubernetes-preserve-unknown-fields", true).
|
||||
Typed("object", ""),
|
||||
expected: withVendorExtensions(new(spec.Schema), "x-kubernetes-preserve-unknown-fields", true),
|
||||
},
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user