in infra/blueprint-test/pkg/kpt/setters.go [14:42]
func UpsertSetters(nodes []*yaml.RNode, setters map[string]string) error {
kf, err := findKptfile(nodes)
if err != nil {
return err
}
// no pipeline defined for pkg
if kf.Pipeline == nil {
return nil
}
for _, fn := range kf.Pipeline.Mutators {
if !strings.Contains(fn.Image, "apply-setters") {
continue
}
// ignoring inlined configMap in Kptfile for now
// all blueprint examples will have setters defined via configPath
if fn.ConfigPath != "" {
settersConfig, err := findSetterNode(nodes, fn.ConfigPath)
if err != nil {
return err
}
setterData := settersConfig.GetDataMap()
for sKey, sVal := range setters {
setterData[sKey] = sVal
}
settersConfig.SetDataMap(setterData)
}
}
return nil
}