diff --git a/api/builtins/PatchStrategicMergeTransformer.go b/api/builtins/PatchStrategicMergeTransformer.go index e94b8c4a2..77ebbc8ae 100644 --- a/api/builtins/PatchStrategicMergeTransformer.go +++ b/api/builtins/PatchStrategicMergeTransformer.go @@ -60,11 +60,10 @@ func (p *PatchStrategicMergeTransformerPlugin) Config( "patch appears to be empty; files=%v, Patch=%s", p.Paths, p.Patches) } // Merge the patches, looking for conflicts. - m, err := h.ResmapFactory().ConflatePatches(p.loadedPatches) + _, err = h.ResmapFactory().ConflatePatches(p.loadedPatches) if err != nil { return err } - p.loadedPatches = m.Resources() return nil } diff --git a/api/krusty/patchdelete_test.go b/api/krusty/patchdelete_test.go index e0245c125..148f50d1b 100644 --- a/api/krusty/patchdelete_test.go +++ b/api/krusty/patchdelete_test.go @@ -69,28 +69,6 @@ spec: image: helloworld name: whatever ` - // Allow expected variable to be unused - _ = expected - - // Currently, kustomize inserts $patch: delete elements into the resulting resources - erroneousActual := ` -apiVersion: apps/v1 -kind: Deployment -metadata: - name: whatever -spec: - template: - spec: - containers: - - env: - - $patch: delete - name: NOT_EXISTING_FOR_REMOVAL - - name: EXISTING - value: EXISTING_VALUE - image: helloworld - name: whatever -` - m := th.Run(".", th.MakeDefaultOptions()) - th.AssertActualEqualsExpected(m, erroneousActual) + th.AssertActualEqualsExpected(m, expected) } diff --git a/kyaml/yaml/merge2/merge2.go b/kyaml/yaml/merge2/merge2.go index 0a8c84487..d0625bd7c 100644 --- a/kyaml/yaml/merge2/merge2.go +++ b/kyaml/yaml/merge2/merge2.go @@ -59,6 +59,11 @@ func (m Merger) VisitMap(nodes walk.Sources, s *openapi.ResourceSchema) (*yaml.R } if yaml.IsMissingOrNull(nodes.Dest()) { // Add + ps, _ := determineSmpDirective(nodes.Origin()) + if ps == smpDelete { + return walk.ClearNode, nil + } + return nodes.Origin(), nil } if nodes.Origin().IsTaggedNull() { diff --git a/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go b/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go index 59975d6b0..7a37c24ce 100644 --- a/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go +++ b/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer.go @@ -64,11 +64,10 @@ func (p *plugin) Config( "patch appears to be empty; files=%v, Patch=%s", p.Paths, p.Patches) } // Merge the patches, looking for conflicts. - m, err := h.ResmapFactory().ConflatePatches(p.loadedPatches) + _, err = h.ResmapFactory().ConflatePatches(p.loadedPatches) if err != nil { return err } - p.loadedPatches = m.Resources() return nil }