mirror of https://github.com/k3s-io/k3s
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
// Code generated by pluginator on ReplacementTransformer; DO NOT EDIT.
|
|
// pluginator {unknown 1970-01-01T00:00:00Z }
|
|
|
|
package builtins
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"sigs.k8s.io/kustomize/api/filters/replacement"
|
|
"sigs.k8s.io/kustomize/api/resmap"
|
|
"sigs.k8s.io/kustomize/api/types"
|
|
"sigs.k8s.io/yaml"
|
|
)
|
|
|
|
// Replace values in targets with values from a source
|
|
type ReplacementTransformerPlugin struct {
|
|
ReplacementList []types.ReplacementField `json:"replacements,omitempty" yaml:"replacements,omitempty"`
|
|
Replacements []types.Replacement `json:"omitempty" yaml:"omitempty"`
|
|
}
|
|
|
|
func (p *ReplacementTransformerPlugin) Config(
|
|
h *resmap.PluginHelpers, c []byte) (err error) {
|
|
p.ReplacementList = []types.ReplacementField{}
|
|
if err := yaml.Unmarshal(c, p); err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, r := range p.ReplacementList {
|
|
if r.Path != "" && (r.Source != nil || len(r.Targets) != 0) {
|
|
return fmt.Errorf("cannot specify both path and inline replacement")
|
|
}
|
|
if r.Path != "" {
|
|
// load the replacement from the path
|
|
content, err := h.Loader().Load(r.Path)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
repl := types.Replacement{}
|
|
if err := yaml.Unmarshal(content, &repl); err != nil {
|
|
return err
|
|
}
|
|
p.Replacements = append(p.Replacements, repl)
|
|
} else {
|
|
// replacement information is already loaded
|
|
p.Replacements = append(p.Replacements, r.Replacement)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (p *ReplacementTransformerPlugin) Transform(m resmap.ResMap) (err error) {
|
|
return m.ApplyFilter(replacement.Filter{
|
|
Replacements: p.Replacements,
|
|
})
|
|
}
|
|
|
|
func NewReplacementTransformerPlugin() resmap.TransformerPlugin {
|
|
return &ReplacementTransformerPlugin{}
|
|
}
|