Add helm add repo synchonously to avoid race conditions with multiple repositories
This commit is contained in:
		
							parent
							
								
									8f607b0da7
								
							
						
					
					
						commit
						72eaa2fb62
					
				|  | @ -124,19 +124,13 @@ func (state *HelmState) applyDefaultsTo(spec ReleaseSpec) ReleaseSpec { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (state *HelmState) SyncRepos(helm helmexec.Interface) []error { | func (state *HelmState) SyncRepos(helm helmexec.Interface) []error { | ||||||
| 	var wg sync.WaitGroup |  | ||||||
| 	errs := []error{} | 	errs := []error{} | ||||||
| 
 | 
 | ||||||
| 	for _, repo := range state.Repositories { | 	for _, repo := range state.Repositories { | ||||||
| 		wg.Add(1) | 		if err := helm.AddRepo(repo.Name, repo.URL); err != nil { | ||||||
| 		go func(wg *sync.WaitGroup, name, url string) { | 			errs = append(errs, err) | ||||||
| 			if err := helm.AddRepo(name, url); err != nil { | 		} | ||||||
| 				errs = append(errs, err) |  | ||||||
| 			} |  | ||||||
| 			wg.Done() |  | ||||||
| 		}(&wg, repo.Name, repo.URL) |  | ||||||
| 	} | 	} | ||||||
| 	wg.Wait() |  | ||||||
| 
 | 
 | ||||||
| 	if len(errs) != 0 { | 	if len(errs) != 0 { | ||||||
| 		return errs | 		return errs | ||||||
|  | @ -157,6 +151,7 @@ func (state *HelmState) SyncReleases(helm helmexec.Interface, additonalValues [] | ||||||
| 	if workerLimit < 1 { | 	if workerLimit < 1 { | ||||||
| 		workerLimit = len(state.Releases) | 		workerLimit = len(state.Releases) | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	for w := 1; w <= workerLimit; w++ { | 	for w := 1; w <= workerLimit; w++ { | ||||||
| 		go func() { | 		go func() { | ||||||
| 			for release := range jobQueue { | 			for release := range jobQueue { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue