diff --git a/kyaml/fieldmeta/fieldmeta.go b/kyaml/fieldmeta/fieldmeta.go index 0e83a8767..b4d6383d4 100644 --- a/kyaml/fieldmeta/fieldmeta.go +++ b/kyaml/fieldmeta/fieldmeta.go @@ -17,7 +17,7 @@ import ( type FieldMeta struct { Schema spec.Schema - Extensions *XKustomize + Extensions XKustomize } type XKustomize struct { @@ -62,9 +62,22 @@ func (fm *FieldMeta) Read(n *yaml.RNode) error { return nil } +func isExtensionEmpty(x XKustomize) bool { + if x.FieldSetter != nil { + return false + } + if x.SetBy != "" { + return false + } + if len(x.PartialFieldSetters) > 0 { + return false + } + return true +} + // Write writes the FieldMeta to a node func (fm *FieldMeta) Write(n *yaml.RNode) error { - if fm.Extensions != nil { + if !isExtensionEmpty(fm.Extensions) { fm.Schema.VendorExtensible.AddExtension("x-kustomize", fm.Extensions) } else { delete(fm.Schema.VendorExtensible.Extensions, "x-kustomize")