Fix `helmfile lint` failure when `installed: false` (#1391)
Fixes #1344
This commit is contained in:
parent
87573089e8
commit
85a2024669
|
|
@ -1297,11 +1297,6 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) {
|
||||||
releasesToRender[id] = r
|
releasesToRender[id] = r
|
||||||
}
|
}
|
||||||
|
|
||||||
names := make([]string, len(toRender))
|
|
||||||
for i, r := range toRender {
|
|
||||||
names[i] = fmt.Sprintf(" %s (%s)", r.Name, r.Chart)
|
|
||||||
}
|
|
||||||
|
|
||||||
var errs []error
|
var errs []error
|
||||||
|
|
||||||
// Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies
|
// Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,9 @@ func (r *Run) withPreparedCharts(forceDownload, skipRepos bool, helmfileCommand
|
||||||
for i := range r.state.Releases {
|
for i := range r.state.Releases {
|
||||||
rel := &r.state.Releases[i]
|
rel := &r.state.Releases[i]
|
||||||
|
|
||||||
rel.Chart = releaseToChart[rel.Name]
|
if chart := releaseToChart[rel.Name]; chart != "" {
|
||||||
|
rel.Chart = chart
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
r.ReleaseToChart = releaseToChart
|
r.ReleaseToChart = releaseToChart
|
||||||
|
|
|
||||||
|
|
@ -784,6 +784,19 @@ func (st *HelmState) getDeployedVersion(context helmexec.HelmContext, helm helme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func releasesNeedCharts(releases []ReleaseSpec) []ReleaseSpec {
|
||||||
|
var result []ReleaseSpec
|
||||||
|
|
||||||
|
for _, r := range releases {
|
||||||
|
if r.Installed != nil && !*r.Installed {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
result = append(result, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
// PrepareCharts creates temporary directories of charts.
|
// PrepareCharts creates temporary directories of charts.
|
||||||
//
|
//
|
||||||
// Each resulting "chart" can be one of the followings:
|
// Each resulting "chart" can be one of the followings:
|
||||||
|
|
@ -798,7 +811,9 @@ func (st *HelmState) getDeployedVersion(context helmexec.HelmContext, helm helme
|
||||||
//
|
//
|
||||||
// If exists, it will also patch resources by json patches, strategic-merge patches, and injectors.
|
// If exists, it will also patch resources by json patches, strategic-merge patches, and injectors.
|
||||||
func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurrency int, helmfileCommand string, forceDownload bool) (map[string]string, []error) {
|
func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurrency int, helmfileCommand string, forceDownload bool) (map[string]string, []error) {
|
||||||
temp := make(map[string]string, len(st.Releases))
|
releases := releasesNeedCharts(st.Releases)
|
||||||
|
|
||||||
|
temp := make(map[string]string, len(releases))
|
||||||
type downloadResults struct {
|
type downloadResults struct {
|
||||||
releaseName string
|
releaseName string
|
||||||
chartPath string
|
chartPath string
|
||||||
|
|
@ -807,8 +822,8 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
|
||||||
|
|
||||||
errs := []error{}
|
errs := []error{}
|
||||||
|
|
||||||
jobQueue := make(chan *ReleaseSpec, len(st.Releases))
|
jobQueue := make(chan *ReleaseSpec, len(releases))
|
||||||
results := make(chan *downloadResults, len(st.Releases))
|
results := make(chan *downloadResults, len(releases))
|
||||||
|
|
||||||
var helm3 bool
|
var helm3 bool
|
||||||
|
|
||||||
|
|
@ -818,10 +833,10 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
|
||||||
|
|
||||||
st.scatterGather(
|
st.scatterGather(
|
||||||
concurrency,
|
concurrency,
|
||||||
len(st.Releases),
|
len(releases),
|
||||||
func() {
|
func() {
|
||||||
for i := 0; i < len(st.Releases); i++ {
|
for i := 0; i < len(releases); i++ {
|
||||||
jobQueue <- &st.Releases[i]
|
jobQueue <- &releases[i]
|
||||||
}
|
}
|
||||||
close(jobQueue)
|
close(jobQueue)
|
||||||
},
|
},
|
||||||
|
|
@ -903,7 +918,7 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
func() {
|
func() {
|
||||||
for i := 0; i < len(st.Releases); i++ {
|
for i := 0; i < len(releases); i++ {
|
||||||
downloadRes := <-results
|
downloadRes := <-results
|
||||||
|
|
||||||
if downloadRes.err != nil {
|
if downloadRes.err != nil {
|
||||||
|
|
@ -1649,7 +1664,9 @@ func (st *HelmState) UpdateDeps(helm helmexec.Interface) []error {
|
||||||
func (st *HelmState) BuildDeps(helm helmexec.Interface) []error {
|
func (st *HelmState) BuildDeps(helm helmexec.Interface) []error {
|
||||||
errs := []error{}
|
errs := []error{}
|
||||||
|
|
||||||
for _, release := range st.Releases {
|
releases := releasesNeedCharts(st.Releases)
|
||||||
|
|
||||||
|
for _, release := range releases {
|
||||||
if len(release.Chart) == 0 {
|
if len(release.Chart) == 0 {
|
||||||
errs = append(errs, errors.New("chart is required for: "+release.Name))
|
errs = append(errs, errors.New("chart is required for: "+release.Name))
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue