From 48676fe34b26b844ebc08b2b564ded0907df851d Mon Sep 17 00:00:00 2001 From: Natasha Sarkar Date: Tue, 26 Jan 2021 16:42:59 -0800 Subject: [PATCH 1/3] updated patch delete test --- .../PatchStrategicMergeTransformer.go | 3 +-- api/krusty/patchdelete_test.go | 24 +------------------ 2 files changed, 2 insertions(+), 25 deletions(-) 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) } From 5958edda142cb2896c3a9875b4f8c86db67057fa Mon Sep 17 00:00:00 2001 From: Natasha Sarkar Date: Tue, 26 Jan 2021 16:43:15 -0800 Subject: [PATCH 2/3] don't merge patches until they are applied --- .../PatchStrategicMergeTransformer.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 } From 4d5657f037e3cfc8d773f2fe29679a1fef527371 Mon Sep 17 00:00:00 2001 From: Natasha Sarkar Date: Tue, 26 Jan 2021 16:43:30 -0800 Subject: [PATCH 3/3] smpdirectives shouldn't add elements when element isn't found --- kyaml/yaml/merge2/merge2.go | 5 +++++ 1 file changed, 5 insertions(+) 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() {