replace mergo with kyaml/yaml/merge2

This commit is contained in:
Krzysztof Gibuła
2023-10-05 20:43:50 +00:00
parent 7e392f9117
commit d768fc371c
68 changed files with 157 additions and 136 deletions

View File

@@ -12,11 +12,12 @@ import (
"regexp"
"strings"
"github.com/imdario/mergo"
"sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/kio"
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
"sigs.k8s.io/kustomize/kyaml/yaml/merge2"
"sigs.k8s.io/yaml"
)
@@ -201,18 +202,29 @@ func (p *HelmChartInflationGeneratorPlugin) replaceValuesInline() error {
if err != nil {
return err
}
chValues := make(map[string]interface{})
if err = yaml.Unmarshal(pValues, &chValues); err != nil {
chValues, err := kyaml.Parse(string(pValues))
if err != nil {
return err
}
inlineValues, err := kyaml.FromMap(p.ValuesInline)
if err != nil {
return err
}
var outValues *kyaml.RNode
switch p.ValuesMerge {
case valuesMergeOptionOverride:
err = mergo.Merge(
&chValues, p.ValuesInline, mergo.WithOverride)
outValues, err = merge2.Merge(inlineValues, chValues, kyaml.MergeOptions{})
case valuesMergeOptionMerge:
err = mergo.Merge(&chValues, p.ValuesInline)
outValues, err = merge2.Merge(chValues, inlineValues, kyaml.MergeOptions{})
}
p.ValuesInline = chValues
if err != nil {
return err
}
mapValues, err := outValues.Map()
if err != nil {
return err
}
p.ValuesInline = mapValues
return err
}