...
1
2
3
4 package patchstrategicmerge
5
6 import (
7 "sigs.k8s.io/kustomize/kyaml/kio"
8 "sigs.k8s.io/kustomize/kyaml/yaml"
9 "sigs.k8s.io/kustomize/kyaml/yaml/merge2"
10 )
11
12 type Filter struct {
13 Patch *yaml.RNode
14 }
15
16 var _ kio.Filter = Filter{}
17
18
19 func (pf Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
20 var result []*yaml.RNode
21 for i := range nodes {
22 r, err := merge2.Merge(
23 pf.Patch, nodes[i],
24 yaml.MergeOptions{
25 ListIncreaseDirection: yaml.MergeOptionsListPrepend,
26 },
27 )
28 if err != nil {
29 return nil, err
30 }
31 if r != nil {
32 result = append(result, r)
33 }
34 }
35 return result, nil
36 }
37
View as plain text