Fix --set and --set-file flags are not passed to chartify (#1803)
Fixes #1681
Ref 286ed08a27
This commit is contained in:
parent
59b91a45a0
commit
204f78c8ff
2
go.mod
2
go.mod
|
|
@ -28,7 +28,7 @@ require (
|
|||
github.com/spf13/cobra v1.1.1
|
||||
github.com/tatsushid/go-prettytable v0.0.0-20141013043238-ed2d14c29939
|
||||
github.com/urfave/cli v1.22.5
|
||||
github.com/variantdev/chartify v0.8.4
|
||||
github.com/variantdev/chartify v0.8.5
|
||||
github.com/variantdev/dag v1.0.0
|
||||
github.com/variantdev/vals v0.13.0
|
||||
go.uber.org/multierr v1.6.0
|
||||
|
|
|
|||
2
go.sum
2
go.sum
|
|
@ -591,6 +591,8 @@ github.com/variantdev/chartify v0.8.3 h1:9PHZqmRoI7YdXMmWuGJm8PUvOyFGRBoy+j8xM1x
|
|||
github.com/variantdev/chartify v0.8.3/go.mod h1:qF4XzQlkfH/6k2jAi1hLas+lK4zSCa8kY+r5JdmLA68=
|
||||
github.com/variantdev/chartify v0.8.4 h1:xriH5eHMlUqza9FMGBhmrWt3I6LHMn494vuEIu06n0M=
|
||||
github.com/variantdev/chartify v0.8.4/go.mod h1:qF4XzQlkfH/6k2jAi1hLas+lK4zSCa8kY+r5JdmLA68=
|
||||
github.com/variantdev/chartify v0.8.5 h1:yAw2+IxftPDR5A2/vr97Y6DR1U/2lJCHxfp40DBxfw0=
|
||||
github.com/variantdev/chartify v0.8.5/go.mod h1:qF4XzQlkfH/6k2jAi1hLas+lK4zSCa8kY+r5JdmLA68=
|
||||
github.com/variantdev/dag v0.0.0-20191028002400-bb0b3c785363 h1:KrfQBEUn+wEOQ/6UIfoqRDvn+Q/wZridQ7t0G1vQqKE=
|
||||
github.com/variantdev/dag v0.0.0-20191028002400-bb0b3c785363/go.mod h1:pH1TQsNSLj2uxMo9NNl9zdGy01Wtn+/2MT96BrKmVyE=
|
||||
github.com/variantdev/dag v1.0.0 h1:7SFjATxHtrYV20P3tx53yNDBMegz6RT4jv8JPHqAHdM=
|
||||
|
|
|
|||
|
|
@ -196,6 +196,11 @@ func (st *HelmState) PrepareChartify(helm helmexec.Interface, release *ReleaseSp
|
|||
filesNeedCleaning = append(filesNeedCleaning, generatedFiles...)
|
||||
|
||||
c.Opts.ValuesFiles = generatedFiles
|
||||
setFlags, err := st.setFlags(release.SetValues)
|
||||
if err != nil {
|
||||
return nil, clean, fmt.Errorf("rendering set value entry for release %s: %v", release.Name, err)
|
||||
}
|
||||
c.Opts.SetFlags = setFlags
|
||||
c.Opts.TemplateData = st.newReleaseTemplateData(release)
|
||||
c.Opts.TemplateFuncs = st.newReleaseTemplateFuncMap(dir)
|
||||
|
||||
|
|
|
|||
|
|
@ -2759,28 +2759,12 @@ func (st *HelmState) namespaceAndValuesFlags(helm helmexec.Interface, release *R
|
|||
}
|
||||
|
||||
if len(release.SetValues) > 0 {
|
||||
for _, set := range release.SetValues {
|
||||
if set.Value != "" {
|
||||
renderedValue, err := renderValsSecrets(st.valsRuntime, set.Value)
|
||||
if err != nil {
|
||||
return nil, files, fmt.Errorf("Failed to render set value entry in %s for release %s: %v", st.FilePath, release.Name, err)
|
||||
}
|
||||
flags = append(flags, "--set", fmt.Sprintf("%s=%s", escape(set.Name), escape(renderedValue[0])))
|
||||
} else if set.File != "" {
|
||||
flags = append(flags, "--set-file", fmt.Sprintf("%s=%s", escape(set.Name), st.storage().normalizePath(set.File)))
|
||||
} else if len(set.Values) > 0 {
|
||||
renderedValues, err := renderValsSecrets(st.valsRuntime, set.Values...)
|
||||
if err != nil {
|
||||
return nil, files, fmt.Errorf("Failed to render set values entry in %s for release %s: %v", st.FilePath, release.Name, err)
|
||||
}
|
||||
items := make([]string, len(renderedValues))
|
||||
for i, raw := range renderedValues {
|
||||
items[i] = escape(raw)
|
||||
}
|
||||
v := strings.Join(items, ",")
|
||||
flags = append(flags, "--set", fmt.Sprintf("%s={%s}", escape(set.Name), v))
|
||||
}
|
||||
setFlags, err := st.setFlags(release.SetValues)
|
||||
if err != nil {
|
||||
return nil, files, fmt.Errorf("Failed to render set value entry in %s for release %s: %v", st.FilePath, release.Name, err)
|
||||
}
|
||||
|
||||
flags = append(flags, setFlags...)
|
||||
}
|
||||
|
||||
/***********
|
||||
|
|
@ -2813,6 +2797,35 @@ func (st *HelmState) namespaceAndValuesFlags(helm helmexec.Interface, release *R
|
|||
return flags, files, nil
|
||||
}
|
||||
|
||||
func (st *HelmState) setFlags(setValues []SetValue) ([]string, error) {
|
||||
var flags []string
|
||||
|
||||
for _, set := range setValues {
|
||||
if set.Value != "" {
|
||||
renderedValue, err := renderValsSecrets(st.valsRuntime, set.Value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
flags = append(flags, "--set", fmt.Sprintf("%s=%s", escape(set.Name), escape(renderedValue[0])))
|
||||
} else if set.File != "" {
|
||||
flags = append(flags, "--set-file", fmt.Sprintf("%s=%s", escape(set.Name), st.storage().normalizePath(set.File)))
|
||||
} else if len(set.Values) > 0 {
|
||||
renderedValues, err := renderValsSecrets(st.valsRuntime, set.Values...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items := make([]string, len(renderedValues))
|
||||
for i, raw := range renderedValues {
|
||||
items[i] = escape(raw)
|
||||
}
|
||||
v := strings.Join(items, ",")
|
||||
flags = append(flags, "--set", fmt.Sprintf("%s={%s}", escape(set.Name), v))
|
||||
}
|
||||
}
|
||||
|
||||
return flags, nil
|
||||
}
|
||||
|
||||
// renderValsSecrets helper function which renders 'ref+.*' secrets
|
||||
func renderValsSecrets(e vals.Evaluator, input ...string) ([]string, error) {
|
||||
output := make([]string, len(input))
|
||||
|
|
|
|||
Loading…
Reference in New Issue