...
1
2
3
4 package accumulator
5
6 import (
7 "sigs.k8s.io/kustomize/api/filters/refvar"
8 "sigs.k8s.io/kustomize/api/resmap"
9 "sigs.k8s.io/kustomize/api/types"
10 )
11
12 type refVarTransformer struct {
13 varMap map[string]interface{}
14 replacementCounts map[string]int
15 fieldSpecs []types.FieldSpec
16 }
17
18
19
20
21 func newRefVarTransformer(
22 varMap map[string]interface{}, fs []types.FieldSpec) *refVarTransformer {
23 return &refVarTransformer{
24 varMap: varMap,
25 fieldSpecs: fs,
26 }
27 }
28
29
30
31 func (rv *refVarTransformer) UnusedVars() []string {
32 var unused []string
33 for k := range rv.varMap {
34 if _, ok := rv.replacementCounts[k]; !ok {
35 unused = append(unused, k)
36 }
37 }
38 return unused
39 }
40
41
42 func (rv *refVarTransformer) Transform(m resmap.ResMap) error {
43 rv.replacementCounts = make(map[string]int)
44 mf := refvar.MakePrimitiveReplacer(rv.replacementCounts, rv.varMap)
45 for _, res := range m.Resources() {
46 for _, fieldSpec := range rv.fieldSpecs {
47 err := res.ApplyFilter(refvar.Filter{
48 MappingFunc: mf,
49 FieldSpec: fieldSpec,
50 })
51 if err != nil {
52 return err
53 }
54 }
55 }
56 return nil
57 }
58
View as plain text