fix the bug that `helmfile template` is unable to render anything when `--namespace` is specified

This commit is contained in:
Yusuke Kuoka 2019-11-07 21:23:36 +09:00
parent e2e4e8440d
commit a136c46c06
1 changed files with 13 additions and 20 deletions

View File

@ -1029,40 +1029,33 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) {
return false, errs return false, errs
} }
var templatedReleases []state.ReleaseSpec toRender, err := st.GetSelectedReleasesWithOverrides()
if err != nil {
if len(st.Selectors) > 0 { return false, []error{err}
var err error }
templatedReleases, err = st.GetSelectedReleasesWithOverrides() if len(toRender) == 0 {
if err != nil { return false, nil
return false, []error{err}
}
if len(templatedReleases) == 0 {
return false, nil
}
} else {
templatedReleases = st.Releases
} }
releasesToBeTemplated := map[string]state.ReleaseSpec{} releasesToRender := map[string]state.ReleaseSpec{}
for _, r := range templatedReleases { for _, r := range toRender {
id := state.ReleaseToID(&r) id := state.ReleaseToID(&r)
releasesToBeTemplated[id] = r releasesToRender[id] = r
} }
names := make([]string, len(templatedReleases)) names := make([]string, len(toRender))
for i, r := range templatedReleases { for i, r := range toRender {
names[i] = fmt.Sprintf(" %s (%s)", r.Name, r.Chart) names[i] = fmt.Sprintf(" %s (%s)", r.Name, r.Chart)
} }
var errs []error var errs []error
if len(releasesToBeTemplated) > 0 { if len(releasesToRender) > 0 {
_, templateErrs := withDAG(st, helm, a.Logger, false, a.Wrap(func(subst *state.HelmState, helm helmexec.Interface) []error { _, templateErrs := withDAG(st, helm, a.Logger, false, a.Wrap(func(subst *state.HelmState, helm helmexec.Interface) []error {
var rs []state.ReleaseSpec var rs []state.ReleaseSpec
for _, r := range subst.Releases { for _, r := range subst.Releases {
if _, ok := releasesToBeTemplated[state.ReleaseToID(&r)]; ok { if _, ok := releasesToRender[state.ReleaseToID(&r)]; ok {
rs = append(rs, r) rs = append(rs, r)
} }
} }