Skip to content

Commit

Permalink
Fix helmfile lint failure when installed: false (#1391)
Browse files Browse the repository at this point in the history
Fixes #1344
  • Loading branch information
mumoshu committed Aug 1, 2020
1 parent 8757308 commit 85a2024
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 14 deletions.
5 changes: 0 additions & 5 deletions pkg/app/app.go
Expand Up @@ -1297,11 +1297,6 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) {
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

// Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies
Expand Down
4 changes: 3 additions & 1 deletion pkg/app/run.go
Expand Up @@ -68,7 +68,9 @@ func (r *Run) withPreparedCharts(forceDownload, skipRepos bool, helmfileCommand
for i := range r.state.Releases {
rel := &r.state.Releases[i]

rel.Chart = releaseToChart[rel.Name]
if chart := releaseToChart[rel.Name]; chart != "" {
rel.Chart = chart
}
}

r.ReleaseToChart = releaseToChart
Expand Down
33 changes: 25 additions & 8 deletions pkg/state/state.go
Expand Up @@ -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.
//
// Each resulting "chart" can be one of the followings:
Expand All @@ -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.
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 {
releaseName string
chartPath string
Expand All @@ -807,8 +822,8 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre

errs := []error{}

jobQueue := make(chan *ReleaseSpec, len(st.Releases))
results := make(chan *downloadResults, len(st.Releases))
jobQueue := make(chan *ReleaseSpec, len(releases))
results := make(chan *downloadResults, len(releases))

var helm3 bool

Expand All @@ -818,10 +833,10 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre

st.scatterGather(
concurrency,
len(st.Releases),
len(releases),
func() {
for i := 0; i < len(st.Releases); i++ {
jobQueue <- &st.Releases[i]
for i := 0; i < len(releases); i++ {
jobQueue <- &releases[i]
}
close(jobQueue)
},
Expand Down Expand Up @@ -903,7 +918,7 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
}
},
func() {
for i := 0; i < len(st.Releases); i++ {
for i := 0; i < len(releases); i++ {
downloadRes := <-results

if downloadRes.err != nil {
Expand Down Expand Up @@ -1649,7 +1664,9 @@ func (st *HelmState) UpdateDeps(helm helmexec.Interface) []error {
func (st *HelmState) BuildDeps(helm helmexec.Interface) []error {
errs := []error{}

for _, release := range st.Releases {
releases := releasesNeedCharts(st.Releases)

for _, release := range releases {
if len(release.Chart) == 0 {
errs = append(errs, errors.New("chart is required for: "+release.Name))
continue
Expand Down

0 comments on commit 85a2024

Please sign in to comment.