From 04a9ea1d2a80b4d746c0b441e85416acafb5a6fb Mon Sep 17 00:00:00 2001 From: KUOKA Yusuke Date: Sat, 13 Apr 2019 21:47:27 +0900 Subject: [PATCH] fix: helmfile apply and sync should properly delete releases (#555) Since #526, `helmfile apply` have been really able to detect deletion of the last release only, and `sync` has been unable to mark releases with `installed: false` for removal. Fixes #554 --- state/state.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/state/state.go b/state/state.go index a0e6b720..f67ba6de 100644 --- a/state/state.go +++ b/state/state.go @@ -206,9 +206,6 @@ type syncPrepareResult struct { func (st *HelmState) prepareSyncReleases(helm helmexec.Interface, additionalValues []string, concurrency int) ([]syncPrepareResult, []error) { releases := []*ReleaseSpec{} for i, _ := range st.Releases { - if !st.Releases[i].Desired() { - continue - } releases = append(releases, &st.Releases[i]) } @@ -297,7 +294,9 @@ func (st *HelmState) DetectReleasesToBeDeleted(helm helmexec.Interface) ([]*Rele if err != nil { return nil, err } else if installed { - detected = append(detected, &release) + // Otherwise `release` messed up(https://github.com/roboll/helmfile/issues/554) + r := release + detected = append(detected, &r) } } }