clean: optimize post-render code (#577)

Signed-off-by: yxxhero <aiopsclub@163.com>

Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
yxxhero 2022-12-14 22:06:23 +08:00 committed by GitHub
parent 5da1200a8b
commit ecc8988f10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 29 deletions

View File

@ -258,10 +258,6 @@ func (helm *execer) SyncRelease(context HelmContext, name, chart string, flags .
env["HELM_TILLER_HISTORY_MAX"] = strconv.Itoa(context.HistoryMax)
}
if helm.IsHelm3() && helm.postRenderer != "" {
flags = append(flags, "--post-renderer", helm.postRenderer)
}
out, err := helm.exec(append(append(preArgs, "upgrade", "--install", name, chart), flags...), env, nil)
helm.write(nil, out)
return err
@ -401,9 +397,6 @@ func (helm *execer) TemplateRelease(name string, chart string, flags ...string)
args = []string{"template", chart, "--name", name}
}
if helm.IsHelm3() && helm.postRenderer != "" {
flags = append(flags, "--post-renderer", helm.postRenderer)
}
out, err := helm.exec(append(args, flags...), map[string]string{}, nil)
var outputToFile bool
@ -447,10 +440,6 @@ func (helm *execer) DiffRelease(context HelmContext, name, chart string, suppres
overrideEnableLiveOutput = &enableLiveOutput
}
if helm.IsHelm3() && helm.postRenderer != "" {
flags = append(flags, "--post-renderer", helm.postRenderer)
}
out, err := helm.exec(append(append(preArgs, "diff", "upgrade", "--allow-unreleased", name, chart), flags...), env, overrideEnableLiveOutput)
// Do our best to write STDOUT only when diff existed
// Unfortunately, this works only when you run helmfile with `--detailed-exitcode`

View File

@ -26,6 +26,23 @@ func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) ([]s
return flags, nil
}
// append post-renderer flags to helm flags
// nolint: unparam
func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, helm helmexec.Interface) ([]string, error) {
if helm.IsHelm3() {
switch {
// helm.GetPostRenderer() comes from cmd flag.
case helm.GetPostRenderer() != "":
flags = append(flags, "--post-renderer", helm.GetPostRenderer())
case release.PostRenderer != nil && *release.PostRenderer != "":
flags = append(flags, "--post-renderer", *release.PostRenderer)
case st.HelmDefaults.PostRenderer != nil && *st.HelmDefaults.PostRenderer != "":
flags = append(flags, "--post-renderer", *st.HelmDefaults.PostRenderer)
}
}
return flags, nil
}
type Chartify struct {
Opts *chartify.ChartifyOpts
Clean func()

View File

@ -2521,12 +2521,9 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp
return nil, nil, err
}
if helm.IsHelm3() && helm.GetPostRenderer() == "" {
if release.PostRenderer != nil && *release.PostRenderer != "" {
flags = append(flags, "--post-renderer", *release.PostRenderer)
} else if st.HelmDefaults.PostRenderer != nil && *st.HelmDefaults.PostRenderer != "" {
flags = append(flags, "--post-renderer", *st.HelmDefaults.PostRenderer)
}
flags, err = st.appendPostRenderFlags(flags, release, helm)
if err != nil {
return nil, nil, err
}
common, clean, err := st.namespaceAndValuesFlags(helm, release, workerIndex)
@ -2556,12 +2553,9 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS
flags = st.appendApiVersionsFlags(flags, release)
if helm.IsHelm3() && helm.GetPostRenderer() == "" {
if release.PostRenderer != nil && *release.PostRenderer != "" {
flags = append(flags, "--post-renderer", *release.PostRenderer)
} else if st.HelmDefaults.PostRenderer != nil && *st.HelmDefaults.PostRenderer != "" {
flags = append(flags, "--post-renderer", *st.HelmDefaults.PostRenderer)
}
flags, err = st.appendPostRenderFlags(flags, release, helm)
if err != nil {
return nil, nil, err
}
common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex)
@ -2605,12 +2599,9 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec,
return nil, nil, err
}
if helm.IsHelm3() && helm.GetPostRenderer() == "" {
if release.PostRenderer != nil && *release.PostRenderer != "" {
flags = append(flags, "--post-renderer", *release.PostRenderer)
} else if st.HelmDefaults.PostRenderer != nil && *st.HelmDefaults.PostRenderer != "" {
flags = append(flags, "--post-renderer", *st.HelmDefaults.PostRenderer)
}
flags, err = st.appendPostRenderFlags(flags, release, helm)
if err != nil {
return nil, nil, err
}
common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex)