mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-18 16:46:16 +02:00
fix: Setting concurrency>1 with single release breaks sync (#290)
Fixes #287
This commit is contained in:
+7
-9
@@ -223,7 +223,7 @@ func (state *HelmState) SyncReleases(helm helmexec.Interface, additionalValues [
|
||||
return prepErrs
|
||||
}
|
||||
|
||||
jobQueue := make(chan *ReleaseSpec)
|
||||
jobQueue := make(chan *syncPrepareResult)
|
||||
results := make(chan syncResult)
|
||||
|
||||
if workerLimit < 1 {
|
||||
@@ -231,7 +231,7 @@ func (state *HelmState) SyncReleases(helm helmexec.Interface, additionalValues [
|
||||
}
|
||||
for w := 1; w <= workerLimit; w++ {
|
||||
go func() {
|
||||
for _, prep := range preps {
|
||||
for prep := range jobQueue {
|
||||
release := prep.release
|
||||
flags := prep.flags
|
||||
chart := normalizeChart(state.basePath, release.Chart)
|
||||
@@ -244,15 +244,13 @@ func (state *HelmState) SyncReleases(helm helmexec.Interface, additionalValues [
|
||||
}()
|
||||
}
|
||||
|
||||
go func() {
|
||||
for i := 0; i < len(state.Releases); i++ {
|
||||
jobQueue <- &state.Releases[i]
|
||||
}
|
||||
close(jobQueue)
|
||||
}()
|
||||
for i := 0; i < len(preps); i++ {
|
||||
jobQueue <- &preps[i]
|
||||
}
|
||||
close(jobQueue)
|
||||
|
||||
errs := []error{}
|
||||
for i := 0; i < len(state.Releases); {
|
||||
for i := 0; i < len(preps); {
|
||||
select {
|
||||
case res := <-results:
|
||||
if len(res.errors) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user