Fix `helmfile template` with Helm 3 ignoring chart version (#1406)
This fixes a regression introduced in #1399 Fixes #1377
This commit is contained in:
		
							parent
							
								
									2710cb382f
								
							
						
					
					
						commit
						61b61d3009
					
				|  | @ -905,8 +905,6 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 				} else { | 				} else { | ||||||
| 					fetchFlags := []string{} |  | ||||||
| 
 |  | ||||||
| 					pathElems := []string{ | 					pathElems := []string{ | ||||||
| 						dir, | 						dir, | ||||||
| 					} | 					} | ||||||
|  | @ -922,19 +920,15 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre | ||||||
| 					chartVersion := "latest" | 					chartVersion := "latest" | ||||||
| 					if release.Version != "" { | 					if release.Version != "" { | ||||||
| 						chartVersion = release.Version | 						chartVersion = release.Version | ||||||
| 						fetchFlags = append(fetchFlags, "--version", release.Version) |  | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
| 					pathElems = append(pathElems, release.Name, chartName, chartVersion) | 					pathElems = append(pathElems, release.Name, chartName, chartVersion) | ||||||
| 
 | 
 | ||||||
| 					chartPath = path.Join(pathElems...) | 					chartPath = path.Join(pathElems...) | ||||||
| 
 | 
 | ||||||
| 					if st.isDevelopment(release) { |  | ||||||
| 						fetchFlags = append(fetchFlags, "--devel") |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					// only fetch chart if it is not already fetched
 | 					// only fetch chart if it is not already fetched
 | ||||||
| 					if _, err := os.Stat(chartPath); os.IsNotExist(err) { | 					if _, err := os.Stat(chartPath); os.IsNotExist(err) { | ||||||
|  | 						fetchFlags := st.chartVersionFlags(release) | ||||||
| 						fetchFlags = append(fetchFlags, "--untar", "--untardir", chartPath) | 						fetchFlags = append(fetchFlags, "--untar", "--untardir", chartPath) | ||||||
| 						if err := helm.Fetch(chartName, fetchFlags...); err != nil { | 						if err := helm.Fetch(chartName, fetchFlags...); err != nil { | ||||||
| 							results <- &downloadResults{err: err} | 							results <- &downloadResults{err: err} | ||||||
|  | @ -1774,14 +1768,7 @@ func (st *HelmState) timeoutFlags(helm helmexec.Interface, release *ReleaseSpec) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, []string, error) { | func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, []string, error) { | ||||||
| 	flags := []string{} | 	flags := st.chartVersionFlags(release) | ||||||
| 	if release.Version != "" { |  | ||||||
| 		flags = append(flags, "--version", release.Version) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if st.isDevelopment(release) { |  | ||||||
| 		flags = append(flags, "--devel") |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	if release.Verify != nil && *release.Verify || release.Verify == nil && st.HelmDefaults.Verify { | 	if release.Verify != nil && *release.Verify || release.Verify == nil && st.HelmDefaults.Verify { | ||||||
| 		flags = append(flags, "--verify") | 		flags = append(flags, "--verify") | ||||||
|  | @ -1840,7 +1827,7 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, []string, error) { | func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, []string, error) { | ||||||
| 	flags := []string{} | 	flags := st.chartVersionFlags(release) | ||||||
| 
 | 
 | ||||||
| 	var err error | 	var err error | ||||||
| 	flags, err = st.appendHelmXFlags(flags, release) | 	flags, err = st.appendHelmXFlags(flags, release) | ||||||
|  | @ -1858,14 +1845,7 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, []string, error) { | func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, workerIndex int) ([]string, []string, error) { | ||||||
| 	flags := []string{} | 	flags := st.chartVersionFlags(release) | ||||||
| 	if release.Version != "" { |  | ||||||
| 		flags = append(flags, "--version", release.Version) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if st.isDevelopment(release) { |  | ||||||
| 		flags = append(flags, "--devel") |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	disableOpenAPIValidation := false | 	disableOpenAPIValidation := false | ||||||
| 	if release.DisableOpenAPIValidation != nil { | 	if release.DisableOpenAPIValidation != nil { | ||||||
|  | @ -1904,6 +1884,20 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, | ||||||
| 	return append(flags, common...), files, nil | 	return append(flags, common...), files, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (st *HelmState) chartVersionFlags(release *ReleaseSpec) []string { | ||||||
|  | 	flags := []string{} | ||||||
|  | 
 | ||||||
|  | 	if release.Version != "" { | ||||||
|  | 		flags = append(flags, "--version", release.Version) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if st.isDevelopment(release) { | ||||||
|  | 		flags = append(flags, "--devel") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return flags | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (st *HelmState) appendApiVersionsFlags(flags []string) []string { | func (st *HelmState) appendApiVersionsFlags(flags []string) []string { | ||||||
| 	for _, a := range st.ApiVersions { | 	for _, a := range st.ApiVersions { | ||||||
| 		flags = append(flags, "--api-versions", a) | 		flags = append(flags, "--api-versions", a) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue