...
1
2
3
4 package builtinhelpers
5
6 import (
7 "sigs.k8s.io/kustomize/api/internal/builtins"
8 "sigs.k8s.io/kustomize/api/resmap"
9 )
10
11
12 type BuiltinPluginType int
13
14 const (
15 Unknown BuiltinPluginType = iota
16 AnnotationsTransformer
17 ConfigMapGenerator
18 IAMPolicyGenerator
19 HashTransformer
20 ImageTagTransformer
21 LabelTransformer
22 NamespaceTransformer
23 PatchJson6902Transformer
24 PatchStrategicMergeTransformer
25 PatchTransformer
26 PrefixSuffixTransformer
27 PrefixTransformer
28 SuffixTransformer
29 ReplicaCountTransformer
30 SecretGenerator
31 ValueAddTransformer
32 HelmChartInflationGenerator
33 ReplacementTransformer
34 )
35
36 var stringToBuiltinPluginTypeMap map[string]BuiltinPluginType
37
38 func init() {
39 stringToBuiltinPluginTypeMap = makeStringToBuiltinPluginTypeMap()
40 }
41
42 func makeStringToBuiltinPluginTypeMap() (result map[string]BuiltinPluginType) {
43 result = make(map[string]BuiltinPluginType, 23)
44 for k := range GeneratorFactories {
45 result[k.String()] = k
46 }
47 for k := range TransformerFactories {
48 result[k.String()] = k
49 }
50 return
51 }
52
53 func GetBuiltinPluginType(n string) BuiltinPluginType {
54 result, ok := stringToBuiltinPluginTypeMap[n]
55 if ok {
56 return result
57 }
58 return Unknown
59 }
60
61 var GeneratorFactories = map[BuiltinPluginType]func() resmap.GeneratorPlugin{
62 ConfigMapGenerator: builtins.NewConfigMapGeneratorPlugin,
63 IAMPolicyGenerator: builtins.NewIAMPolicyGeneratorPlugin,
64 SecretGenerator: builtins.NewSecretGeneratorPlugin,
65 HelmChartInflationGenerator: builtins.NewHelmChartInflationGeneratorPlugin,
66 }
67
68 type MultiTransformer struct {
69 transformers []resmap.TransformerPlugin
70 }
71
72 func (t *MultiTransformer) Transform(m resmap.ResMap) error {
73 for _, transformer := range t.transformers {
74 if err := transformer.Transform(m); err != nil {
75 return err
76 }
77 }
78 return nil
79 }
80
81 func (t *MultiTransformer) Config(h *resmap.PluginHelpers, b []byte) error {
82 for _, transformer := range t.transformers {
83 if err := transformer.Config(h, b); err != nil {
84 return err
85 }
86 }
87 return nil
88 }
89
90 func NewMultiTransformer() resmap.TransformerPlugin {
91 return &MultiTransformer{[]resmap.TransformerPlugin{
92 builtins.NewPrefixTransformerPlugin(),
93 builtins.NewSuffixTransformerPlugin(),
94 }}
95 }
96
97 var TransformerFactories = map[BuiltinPluginType]func() resmap.TransformerPlugin{
98 AnnotationsTransformer: builtins.NewAnnotationsTransformerPlugin,
99 HashTransformer: builtins.NewHashTransformerPlugin,
100 ImageTagTransformer: builtins.NewImageTagTransformerPlugin,
101 LabelTransformer: builtins.NewLabelTransformerPlugin,
102 NamespaceTransformer: builtins.NewNamespaceTransformerPlugin,
103 PatchJson6902Transformer: builtins.NewPatchJson6902TransformerPlugin,
104 PatchStrategicMergeTransformer: builtins.NewPatchStrategicMergeTransformerPlugin,
105 PatchTransformer: builtins.NewPatchTransformerPlugin,
106 PrefixSuffixTransformer: NewMultiTransformer,
107 PrefixTransformer: builtins.NewPrefixTransformerPlugin,
108 SuffixTransformer: builtins.NewSuffixTransformerPlugin,
109 ReplacementTransformer: builtins.NewReplacementTransformerPlugin,
110 ReplicaCountTransformer: builtins.NewReplicaCountTransformerPlugin,
111 ValueAddTransformer: builtins.NewValueAddTransformerPlugin,
112
113
114
115 }
116
View as plain text