fix: sync should not hang on `installed: false` (#464)

Fixes #423
This commit is contained in:
KUOKA Yusuke 2019-02-04 17:16:58 +09:00 committed by GitHub
parent 9cfd6aeae7
commit f2bdcb9113
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 5 deletions

View File

@ -297,18 +297,21 @@ func (st *HelmState) SyncReleases(helm helmexec.Interface, additionalValues []st
release := prep.release
flags := prep.flags
chart := normalizeChart(st.basePath, release.Chart)
var relErr *ReleaseError
if release.Installed != nil && !*release.Installed {
if err := helm.ReleaseStatus(release.Name); err == nil {
if err := helm.DeleteRelease(release.Name, "--purge"); err != nil {
results <- syncResult{errors: []*ReleaseError{&ReleaseError{release, err}}}
} else {
results <- syncResult{}
relErr = &ReleaseError{release, err}
}
}
} else if err := helm.SyncRelease(release.Name, chart, flags...); err != nil {
results <- syncResult{errors: []*ReleaseError{&ReleaseError{release, err}}}
} else {
relErr = &ReleaseError{release, err}
}
if relErr == nil {
results <- syncResult{}
} else {
results <- syncResult{errors: []*ReleaseError{relErr}}
}
if _, err := st.triggerCleanupEvent(prep.release, "sync"); err != nil {