...
1
2
3
4 package builtins
5
6 import (
7 "sigs.k8s.io/kustomize/api/kv"
8 "sigs.k8s.io/kustomize/api/resmap"
9 "sigs.k8s.io/kustomize/api/types"
10 "sigs.k8s.io/yaml"
11 )
12
13 type ConfigMapGeneratorPlugin struct {
14 h *resmap.PluginHelpers
15 types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
16 types.ConfigMapArgs
17 }
18
19 func (p *ConfigMapGeneratorPlugin) Config(h *resmap.PluginHelpers, config []byte) (err error) {
20 p.ConfigMapArgs = types.ConfigMapArgs{}
21 err = yaml.Unmarshal(config, p)
22 if p.ConfigMapArgs.Name == "" {
23 p.ConfigMapArgs.Name = p.Name
24 }
25 if p.ConfigMapArgs.Namespace == "" {
26 p.ConfigMapArgs.Namespace = p.Namespace
27 }
28 p.h = h
29 return
30 }
31
32 func (p *ConfigMapGeneratorPlugin) Generate() (resmap.ResMap, error) {
33 return p.h.ResmapFactory().FromConfigMapArgs(
34 kv.NewLoader(p.h.Loader(), p.h.Validator()), p.ConfigMapArgs)
35 }
36
37 func NewConfigMapGeneratorPlugin() resmap.GeneratorPlugin {
38 return &ConfigMapGeneratorPlugin{}
39 }
40
View as plain text