From ff276af3173618332e593de98286ee431a533bd8 Mon Sep 17 00:00:00 2001 From: Donny Xia Date: Tue, 3 Nov 2020 17:14:08 -0800 Subject: [PATCH] use same logic with path transformer --- .../PatchJson6902Transformer.go | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer.go b/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer.go index f07226fc9..340d1abb0 100644 --- a/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer.go +++ b/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer.go @@ -11,7 +11,6 @@ import ( "github.com/pkg/errors" "sigs.k8s.io/kustomize/api/filters/patchjson6902" "sigs.k8s.io/kustomize/api/ifc" - "sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filtersutil" @@ -21,9 +20,9 @@ import ( type plugin struct { ldr ifc.Loader decodedPatch jsonpatch.Patch - Target types.PatchTarget `json:"target,omitempty" yaml:"target,omitempty"` - Path string `json:"path,omitempty" yaml:"path,omitempty"` - JsonOp string `json:"jsonOp,omitempty" yaml:"jsonOp,omitempty"` + Target *types.Selector `json:"target,omitempty" yaml:"target,omitempty"` + Path string `json:"path,omitempty" yaml:"path,omitempty"` + JsonOp string `json:"jsonOp,omitempty" yaml:"jsonOp,omitempty"` } //noinspection GoUnusedGlobalVariable @@ -76,20 +75,20 @@ func (p *plugin) Config( } func (p *plugin) Transform(m resmap.ResMap) error { - id := resid.NewResIdWithNamespace( - resid.Gvk{ - Group: p.Target.Group, - Version: p.Target.Version, - Kind: p.Target.Kind, - }, - p.Target.Name, - p.Target.Namespace, - ) - obj, err := m.GetById(id) + if p.Target == nil { + return fmt.Errorf("must specify a target for patch %s", p.JsonOp) + } + resources, err := m.Select(*p.Target) if err != nil { return err } - return filtersutil.ApplyToJSON(patchjson6902.Filter{ - Patch: p.JsonOp, - }, obj) + for _, res := range resources { + err = filtersutil.ApplyToJSON(patchjson6902.Filter{ + Patch: p.JsonOp, + }, res) + if err != nil { + return err + } + } + return nil }