// Code generated by pluginator on PatchStrategicMergeTransformer; DO NOT EDIT. package builtin import ( "fmt" "sigs.k8s.io/kustomize/v3/pkg/ifc" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/resource" "sigs.k8s.io/kustomize/v3/pkg/types" "sigs.k8s.io/yaml" ) type PatchStrategicMergeTransformerPlugin struct { ldr ifc.Loader rf *resmap.Factory loadedPatches []*resource.Resource Paths []types.PatchStrategicMerge `json:"paths,omitempty" yaml:"paths,omitempty"` Patches string `json:patches,omitempty" yaml:"patches,omitempty"` } //noinspection GoUnusedGlobalVariable func NewPatchStrategicMergeTransformerPlugin() *PatchStrategicMergeTransformerPlugin { return &PatchStrategicMergeTransformerPlugin{} } func (p *PatchStrategicMergeTransformerPlugin) Config( ldr ifc.Loader, rf *resmap.Factory, c []byte) (err error) { p.ldr = ldr p.rf = rf err = yaml.Unmarshal(c, p) if err != nil { return err } if len(p.Paths) == 0 && p.Patches == "" { return fmt.Errorf("empty file path and empty patch content") } if len(p.Paths) != 0 { res, err := p.rf.RF().SliceFromPatches(ldr, p.Paths) if err != nil { return err } p.loadedPatches = res } if p.Patches != "" { res, err := p.rf.RF().SliceFromBytes([]byte(p.Patches)) if err != nil { return err } p.loadedPatches = append(p.loadedPatches, res...) } if len(p.loadedPatches) == 0 { return fmt.Errorf( "patch appears to be empty; files=%v, Patch=%s", p.Paths, p.Patches) } return err } func (p *PatchStrategicMergeTransformerPlugin) Transform(m resmap.ResMap) error { patches, err := p.rf.MergePatches(p.loadedPatches) if err != nil { return err } for _, patch := range patches.Resources() { target, err := m.GetById(patch.OrgId()) if err != nil { return err } err = target.Patch(patch.Kunstructured) if err != nil { return err } } return nil }