...
1
2
3
4 package builtins
5
6 import (
7 "fmt"
8
9 "sigs.k8s.io/kustomize/api/ifc"
10 "sigs.k8s.io/kustomize/api/resmap"
11 )
12
13 type HashTransformerPlugin struct {
14 hasher ifc.KustHasher
15 }
16
17 func (p *HashTransformerPlugin) Config(
18 h *resmap.PluginHelpers, _ []byte) (err error) {
19 p.hasher = h.ResmapFactory().RF().Hasher()
20 return nil
21 }
22
23
24 func (p *HashTransformerPlugin) Transform(m resmap.ResMap) error {
25 for _, res := range m.Resources() {
26 if res.NeedHashSuffix() {
27 h, err := res.Hash(p.hasher)
28 if err != nil {
29 return err
30 }
31 res.StorePreviousId()
32 res.SetName(fmt.Sprintf("%s-%s", res.GetName(), h))
33 }
34 }
35 return nil
36 }
37
38 func NewHashTransformerPlugin() resmap.TransformerPlugin {
39 return &HashTransformerPlugin{}
40 }
41
View as plain text