diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index 209949ec..0fa711d8 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -446,6 +446,11 @@ func (helm *execer) DiffRelease(context HelmContext, name, chart string, suppres enableLiveOutput := false 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` diff --git a/pkg/state/state.go b/pkg/state/state.go index 5d4bca7b..d5943997 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2605,6 +2605,14 @@ 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) + } + } + common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { return nil, files, err