diff --git a/pkg/state/state.go b/pkg/state/state.go index 9bc52027..fd932e09 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -850,10 +850,18 @@ func (st *HelmState) isReleaseInstalled(context helmexec.HelmContext, helm helme func (st *HelmState) DetectReleasesToBeDeletedForSync(helm helmexec.Interface, releases []ReleaseSpec) ([]ReleaseSpec, error) { deleted := []ReleaseSpec{} + checked := make(map[string]bool) + for i := range releases { release := releases[i] if !release.Desired() { + id := ReleaseToID(&release) + if checked[id] { + continue + } + checked[id] = true + installed, err := st.isReleaseInstalled(st.createHelmContext(&release, 0), helm, release) if err != nil { return nil, err diff --git a/test/integration/test-cases/diff-args/output/diff-live-stderr b/test/integration/test-cases/diff-args/output/diff-live-stderr index a40a9f40..4e62c3bc 100644 --- a/test/integration/test-cases/diff-args/output/diff-live-stderr +++ b/test/integration/test-cases/diff-args/output/diff-live-stderr @@ -1,4 +1,3 @@ Live output is enabled Building dependency release=installed, chart=../../../charts/httpbin -Listing releases matching ^uninstalled$ -Listing releases matching ^uninstalled$ +Listing releases matching ^uninstalled$