func UpsertSetters()

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
}