From 870d33f418b07a787ecf9dfcfdf100996e8f3d49 Mon Sep 17 00:00:00 2001 From: KUOKA Yusuke Date: Fri, 29 Mar 2019 10:11:19 +0900 Subject: [PATCH] fix: `helmfile delete` should not stop on uninstalled release(s) (#509) Resolves #481 --- state/state.go | 9 ++++++++- test/integration/run.sh | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/state/state.go b/state/state.go index 3059c608..b4af6d94 100644 --- a/state/state.go +++ b/state/state.go @@ -708,7 +708,14 @@ func (st *HelmState) DeleteReleases(helm helmexec.Interface, purge bool) []error if purge { flags = append(flags, "--purge") } - return helm.DeleteRelease(release.Name, flags...) + installed, err := isReleaseInstalled(helm, release) + if err != nil { + return err + } + if installed { + return helm.DeleteRelease(release.Name, flags...) + } + return nil }) } diff --git a/test/integration/run.sh b/test/integration/run.sh index 552774f1..c925b591 100755 --- a/test/integration/run.sh +++ b/test/integration/run.sh @@ -80,6 +80,9 @@ info "Deleting release" ${helmfile} -f ${dir}/happypath.yaml delete ${helm} status --namespace=${test_ns} httpbin &> /dev/null && fail "release should not exist anymore after a delete" +info "Ensuring \"helmfile delete\" doesn't fail when no releases installed" +${helmfile} -f ${dir}/happypath.yaml delete || fail "\"helmfile delete\" shouldn't fail when there are no installed releases" + test_pass "happypath"