parent
							
								
									cf24d348bf
								
							
						
					
					
						commit
						08f5d6ab08
					
				
							
								
								
									
										152
									
								
								pkg/app/app.go
								
								
								
								
							
							
						
						
									
										152
									
								
								pkg/app/app.go
								
								
								
								
							| 
						 | 
				
			
			@ -133,7 +133,11 @@ func (a *App) Deps(c DepsConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds(), SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipRepos(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeTransitiveNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Repos(c ReposConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +149,11 @@ func (a *App) Repos(c ReposConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds(), SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              !c.IncludeTransitiveNeeds(),
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: Remove this function once Helmfile v0.x
 | 
			
		||||
| 
						 | 
				
			
			@ -164,7 +172,11 @@ func (a *App) DeprecatedSyncCharts(c DeprecatedChartsConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds(), SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              !c.IncludeTransitiveNeeds(),
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Diff(c DiffConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -221,7 +233,11 @@ func (a *App) Diff(c DiffConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return matched, criticalErrs
 | 
			
		||||
	}, c.IncludeTransitiveNeeds())
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
| 
						 | 
				
			
			@ -268,7 +284,11 @@ func (a *App) Template(c TemplateConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds())
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) WriteValues(c WriteValuesConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -287,7 +307,11 @@ func (a *App) WriteValues(c WriteValuesConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds(), SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              !c.IncludeTransitiveNeeds(),
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type MultiError struct {
 | 
			
		||||
| 
						 | 
				
			
			@ -344,7 +368,11 @@ func (a *App) Lint(c LintConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds())
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
| 
						 | 
				
			
			@ -374,7 +402,11 @@ func (a *App) Fetch(c FetchConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Sync(c SyncConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -399,7 +431,11 @@ func (a *App) Sync(c SyncConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds())
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Apply(c ApplyConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -440,7 +476,11 @@ func (a *App) Apply(c ApplyConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, c.IncludeTransitiveNeeds(), opts...)
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	}, opts...)
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
| 
						 | 
				
			
			@ -470,7 +510,11 @@ func (a *App) Status(c StatusesConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: Remove this function once Helmfile v0.x
 | 
			
		||||
| 
						 | 
				
			
			@ -492,7 +536,11 @@ func (a *App) Delete(c DeleteConfigProvider) error {
 | 
			
		|||
			ok, errs = a.delete(run, c.Purge(), c)
 | 
			
		||||
		}
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetReverse(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetReverse(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Destroy(c DestroyConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -512,7 +560,11 @@ func (a *App) Destroy(c DestroyConfigProvider) error {
 | 
			
		|||
			ok, errs = a.delete(run, true, c)
 | 
			
		||||
		}
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetReverse(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetReverse(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Test(c TestConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -536,7 +588,11 @@ func (a *App) Test(c TestConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) PrintState(c StateConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -589,7 +645,11 @@ func (a *App) PrintState(c StateConfigProvider) error {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) ListReleases(c ListConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -622,7 +682,11 @@ func (a *App) ListReleases(c ListConfigProvider) error {
 | 
			
		|||
		releases = append(releases, stateReleases...)
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}, false, SetFilter(true))
 | 
			
		||||
	}, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	}, SetFilter(true))
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
| 
						 | 
				
			
			@ -962,7 +1026,7 @@ var (
 | 
			
		|||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (a *App) ForEachState(do func(*Run) (bool, []error), includeTransitiveNeeds bool, o ...LoadOption) error {
 | 
			
		||||
func (a *App) ForEachState(do func(*Run) (bool, []error), needsOptions state.NeedsOptions, o ...LoadOption) error {
 | 
			
		||||
	ctx := NewContext()
 | 
			
		||||
	err := a.visitStatesWithSelectorsAndRemoteSupport(a.FileOrDir, func(st *state.HelmState) (bool, []error) {
 | 
			
		||||
		helm := a.getHelm(st)
 | 
			
		||||
| 
						 | 
				
			
			@ -972,7 +1036,7 @@ func (a *App) ForEachState(do func(*Run) (bool, []error), includeTransitiveNeeds
 | 
			
		|||
			return false, []error{err}
 | 
			
		||||
		}
 | 
			
		||||
		return do(run)
 | 
			
		||||
	}, includeTransitiveNeeds, o...)
 | 
			
		||||
	}, needsOptions, o...)
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1051,7 +1115,7 @@ type Opts struct {
 | 
			
		|||
	DAGEnabled bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) visitStatesWithSelectorsAndRemoteSupport(fileOrDir string, converge func(*state.HelmState) (bool, []error), includeTransitiveNeeds bool, opt ...LoadOption) error {
 | 
			
		||||
func (a *App) visitStatesWithSelectorsAndRemoteSupport(fileOrDir string, converge func(*state.HelmState) (bool, []error), needsOptions state.NeedsOptions, opt ...LoadOption) error {
 | 
			
		||||
	opts := LoadOpts{
 | 
			
		||||
		Selectors: a.Selectors,
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1083,7 +1147,7 @@ func (a *App) visitStatesWithSelectorsAndRemoteSupport(fileOrDir string, converg
 | 
			
		|||
				_, err := converge(st)
 | 
			
		||||
				return err
 | 
			
		||||
			},
 | 
			
		||||
				includeTransitiveNeeds)
 | 
			
		||||
				needsOptions)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1096,9 +1160,9 @@ func (a *App) visitStatesWithSelectorsAndRemoteSupport(fileOrDir string, converg
 | 
			
		|||
	return a.visitStates(fileOrDir, opts, fHelmStatsWithOverrides)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func processFilteredReleases(st *state.HelmState, converge func(st *state.HelmState) []error, includeTransitiveNeeds bool) (bool, []error) {
 | 
			
		||||
func processFilteredReleases(st *state.HelmState, converge func(st *state.HelmState) []error, needsOptions state.NeedsOptions) (bool, []error) {
 | 
			
		||||
	if len(st.Selectors) > 0 {
 | 
			
		||||
		err := st.FilterReleases(includeTransitiveNeeds)
 | 
			
		||||
		err := st.FilterReleases(needsOptions)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return false, []error{err}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -1144,11 +1208,11 @@ func checkDuplicates(releases []state.ReleaseSpec) error {
 | 
			
		|||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) Wrap(converge func(*state.HelmState, helmexec.Interface) []error) func(st *state.HelmState, helm helmexec.Interface, includeTransitiveNeeds bool) (bool, []error) {
 | 
			
		||||
	return func(st *state.HelmState, helm helmexec.Interface, includeTransitiveNeeds bool) (bool, []error) {
 | 
			
		||||
func (a *App) Wrap(converge func(*state.HelmState, helmexec.Interface) []error) func(st *state.HelmState, helm helmexec.Interface, needsOptions state.NeedsOptions) (bool, []error) {
 | 
			
		||||
	return func(st *state.HelmState, helm helmexec.Interface, needsOptions state.NeedsOptions) (bool, []error) {
 | 
			
		||||
		return processFilteredReleases(st, func(st *state.HelmState) []error {
 | 
			
		||||
			return converge(st, helm)
 | 
			
		||||
		}, includeTransitiveNeeds)
 | 
			
		||||
		}, needsOptions)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1247,8 +1311,8 @@ func (a *App) findDesiredStateFiles(specifiedPath string, opts LoadOpts) ([]stri
 | 
			
		|||
	return files, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *App) getSelectedReleases(r *Run, includeTransitiveNeeds bool) ([]state.ReleaseSpec, []state.ReleaseSpec, error) {
 | 
			
		||||
	selected, err := r.state.GetSelectedReleases(includeTransitiveNeeds)
 | 
			
		||||
func (a *App) getSelectedReleases(r *Run, needsOptions state.NeedsOptions) ([]state.ReleaseSpec, []state.ReleaseSpec, error) {
 | 
			
		||||
	selected, err := r.state.GetSelectedReleases(needsOptions)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1326,7 +1390,11 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, bool, []error) {
 | 
			
		|||
 | 
			
		||||
	helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...)
 | 
			
		||||
 | 
			
		||||
	selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, c.IncludeTransitiveNeeds())
 | 
			
		||||
	selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, false, []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1517,7 +1585,11 @@ func (a *App) delete(r *Run, purge bool, c DestroyConfigProvider) (bool, []error
 | 
			
		|||
 | 
			
		||||
	affectedReleases := state.AffectedReleases{}
 | 
			
		||||
 | 
			
		||||
	toSync, _, err := a.getSelectedReleases(r, false)
 | 
			
		||||
	toSync, _, err := a.getSelectedReleases(r, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1670,7 +1742,11 @@ func (a *App) status(r *Run, c StatusesConfigProvider) (bool, []error) {
 | 
			
		|||
 | 
			
		||||
	allReleases := st.Releases
 | 
			
		||||
 | 
			
		||||
	selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, false)
 | 
			
		||||
	selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1720,7 +1796,11 @@ func (a *App) sync(r *Run, c SyncConfigProvider) (bool, []error) {
 | 
			
		|||
	st := r.state
 | 
			
		||||
	helm := r.helm
 | 
			
		||||
 | 
			
		||||
	selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, c.IncludeTransitiveNeeds())
 | 
			
		||||
	selectedReleases, selectedAndNeededReleases, err := a.getSelectedReleases(r, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1918,7 +1998,11 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) {
 | 
			
		|||
func (a *App) withNeeds(r *Run, c DAGConfig, includeDisabled bool, f func(*state.HelmState) []error) (bool, []error) {
 | 
			
		||||
	st := r.state
 | 
			
		||||
 | 
			
		||||
	selectedReleases, deduplicated, err := a.getSelectedReleases(r, c.IncludeTransitiveNeeds())
 | 
			
		||||
	selectedReleases, deduplicated, err := a.getSelectedReleases(r, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipNeeds(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -2001,7 +2085,7 @@ func (a *App) test(r *Run, c TestConfigProvider) []error {
 | 
			
		|||
 | 
			
		||||
	st := r.state
 | 
			
		||||
 | 
			
		||||
	toTest, _, err := a.getSelectedReleases(r, false)
 | 
			
		||||
	toTest, _, err := a.getSelectedReleases(r, state.NeedsOptions{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -2023,7 +2107,7 @@ func (a *App) writeValues(r *Run, c WriteValuesConfigProvider) (bool, []error) {
 | 
			
		|||
	st := r.state
 | 
			
		||||
	helm := r.helm
 | 
			
		||||
 | 
			
		||||
	toRender, _, err := a.getSelectedReleases(r, false)
 | 
			
		||||
	toRender, _, err := a.getSelectedReleases(r, state.NeedsOptions{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, []error{err}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,7 +110,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		noop,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -162,7 +166,11 @@ BAZ: 4
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		Noop,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -204,7 +212,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		Noop,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -249,7 +261,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		Noop,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -301,7 +317,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
			err := app.ForEachState(
 | 
			
		||||
				Noop,
 | 
			
		||||
				false,
 | 
			
		||||
				state.NeedsOptions{
 | 
			
		||||
					SkipNeeds:              true,
 | 
			
		||||
					IncludeNeeds:           false,
 | 
			
		||||
					IncludeTransitiveNeeds: false,
 | 
			
		||||
				},
 | 
			
		||||
				SetFilter(true),
 | 
			
		||||
			)
 | 
			
		||||
			if testcase.expectErr && err == nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -368,7 +388,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
		err := app.ForEachState(
 | 
			
		||||
			Noop,
 | 
			
		||||
			false,
 | 
			
		||||
			state.NeedsOptions{
 | 
			
		||||
				SkipNeeds:              true,
 | 
			
		||||
				IncludeNeeds:           false,
 | 
			
		||||
				IncludeTransitiveNeeds: false,
 | 
			
		||||
			},
 | 
			
		||||
			SetFilter(true),
 | 
			
		||||
		)
 | 
			
		||||
		if testcase.expectErr && err == nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -423,7 +447,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
		err := app.ForEachState(
 | 
			
		||||
			Noop,
 | 
			
		||||
			false,
 | 
			
		||||
			state.NeedsOptions{
 | 
			
		||||
				SkipNeeds:              true,
 | 
			
		||||
				IncludeNeeds:           false,
 | 
			
		||||
				IncludeTransitiveNeeds: false,
 | 
			
		||||
			},
 | 
			
		||||
			SetFilter(true),
 | 
			
		||||
		)
 | 
			
		||||
		if testcase.expectErr && err == nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -537,7 +565,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
			err := app.ForEachState(
 | 
			
		||||
				collectReleases,
 | 
			
		||||
				false,
 | 
			
		||||
				state.NeedsOptions{
 | 
			
		||||
					SkipNeeds:              true,
 | 
			
		||||
					IncludeNeeds:           false,
 | 
			
		||||
					IncludeTransitiveNeeds: false,
 | 
			
		||||
				},
 | 
			
		||||
				SetFilter(true),
 | 
			
		||||
			)
 | 
			
		||||
			if testcase.expectErr {
 | 
			
		||||
| 
						 | 
				
			
			@ -778,7 +810,11 @@ func runFilterSubHelmFilesTests(testcases []struct {
 | 
			
		|||
 | 
			
		||||
		err := app.ForEachState(
 | 
			
		||||
			collectReleases,
 | 
			
		||||
			false,
 | 
			
		||||
			state.NeedsOptions{
 | 
			
		||||
				SkipNeeds:              true,
 | 
			
		||||
				IncludeNeeds:           false,
 | 
			
		||||
				IncludeTransitiveNeeds: false,
 | 
			
		||||
			},
 | 
			
		||||
			SetFilter(true),
 | 
			
		||||
		)
 | 
			
		||||
		if testcase.expectErr {
 | 
			
		||||
| 
						 | 
				
			
			@ -864,7 +900,11 @@ ns: INLINE_NS
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		collectReleases,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -961,7 +1001,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
		err := app.ForEachState(
 | 
			
		||||
			collectReleases,
 | 
			
		||||
			false,
 | 
			
		||||
			state.NeedsOptions{
 | 
			
		||||
				SkipNeeds:              true,
 | 
			
		||||
				IncludeNeeds:           false,
 | 
			
		||||
				IncludeTransitiveNeeds: false,
 | 
			
		||||
			},
 | 
			
		||||
			SetReverse(testcase.reverse),
 | 
			
		||||
			SetFilter(true),
 | 
			
		||||
		)
 | 
			
		||||
| 
						 | 
				
			
			@ -1027,7 +1071,11 @@ bar: "bar1"
 | 
			
		|||
 | 
			
		||||
		err := app.ForEachState(
 | 
			
		||||
			collectReleases,
 | 
			
		||||
			false,
 | 
			
		||||
			state.NeedsOptions{
 | 
			
		||||
				SkipNeeds:              true,
 | 
			
		||||
				IncludeNeeds:           false,
 | 
			
		||||
				IncludeTransitiveNeeds: false,
 | 
			
		||||
			},
 | 
			
		||||
			SetFilter(true),
 | 
			
		||||
		)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -1148,7 +1196,11 @@ x:
 | 
			
		|||
 | 
			
		||||
			err := app.ForEachState(
 | 
			
		||||
				collectReleases,
 | 
			
		||||
				false,
 | 
			
		||||
				state.NeedsOptions{
 | 
			
		||||
					SkipNeeds:              true,
 | 
			
		||||
					IncludeNeeds:           false,
 | 
			
		||||
					IncludeTransitiveNeeds: false,
 | 
			
		||||
				},
 | 
			
		||||
				SetFilter(true),
 | 
			
		||||
			)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -1199,7 +1251,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		collectReleases,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -1255,7 +1311,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
			err := app.ForEachState(
 | 
			
		||||
				collectReleases,
 | 
			
		||||
				false,
 | 
			
		||||
				state.NeedsOptions{
 | 
			
		||||
					SkipNeeds:              true,
 | 
			
		||||
					IncludeNeeds:           false,
 | 
			
		||||
					IncludeTransitiveNeeds: false,
 | 
			
		||||
				},
 | 
			
		||||
				SetFilter(true),
 | 
			
		||||
			)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -1304,7 +1364,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		collectReleases,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1346,7 +1410,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		collectReleases,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1392,7 +1460,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		collectReleases,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -4234,7 +4306,11 @@ releases:
 | 
			
		|||
 | 
			
		||||
	err := app.ForEachState(
 | 
			
		||||
		collectReleases,
 | 
			
		||||
		false,
 | 
			
		||||
		state.NeedsOptions{
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
		},
 | 
			
		||||
		SetFilter(true),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -107,7 +107,11 @@ func (r *Run) withPreparedCharts(helmfileCommand string, opts state.ChartPrepare
 | 
			
		|||
func (r *Run) Deps(c DepsConfigProvider) []error {
 | 
			
		||||
	r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state, nil)...)
 | 
			
		||||
 | 
			
		||||
	return r.state.UpdateDeps(r.helm, c.IncludeTransitiveNeeds())
 | 
			
		||||
	return r.state.UpdateDeps(r.helm, state.NeedsOptions{
 | 
			
		||||
		SkipNeeds:              c.SkipRepos(),
 | 
			
		||||
		IncludeNeeds:           c.IncludeTransitiveNeeds(),
 | 
			
		||||
		IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *Run) Repos(c ReposConfigProvider) error {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -112,7 +112,11 @@ func TestSelectReleasesWithOverrides(t *testing.T) {
 | 
			
		|||
 | 
			
		||||
		state.Releases = state.GetReleasesWithOverrides()
 | 
			
		||||
 | 
			
		||||
		rs, err := state.GetSelectedReleases(false)
 | 
			
		||||
		rs, err := state.GetSelectedReleases(NeedsOptions{
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: false,
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
		})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatalf("%s %s: %v", tc.selector, tc.subject, err)
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -182,7 +186,11 @@ func TestSelectReleasesWithOverridesWithIncludedTransitives(t *testing.T) {
 | 
			
		|||
		state.Selectors = tc.selector
 | 
			
		||||
		state.Releases = state.GetReleasesWithOverrides()
 | 
			
		||||
 | 
			
		||||
		rs, err := state.GetSelectedReleases(tc.includeTransitiveNeeds)
 | 
			
		||||
		rs, err := state.GetSelectedReleases(NeedsOptions{
 | 
			
		||||
			IncludeNeeds:           false,
 | 
			
		||||
			IncludeTransitiveNeeds: tc.includeTransitiveNeeds,
 | 
			
		||||
			SkipNeeds:              !tc.includeTransitiveNeeds,
 | 
			
		||||
		})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatalf("%s %s: %v", tc.selector, tc.subject, err)
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1046,6 +1046,7 @@ type ChartPrepareOptions struct {
 | 
			
		|||
	OutputDirTemplate      string
 | 
			
		||||
	IncludeTransitiveNeeds bool
 | 
			
		||||
	IncludeNeeds           bool
 | 
			
		||||
	SkipNeeds              bool
 | 
			
		||||
	Concurrency            int
 | 
			
		||||
	KubeVersion            string
 | 
			
		||||
	Set                    []string
 | 
			
		||||
| 
						 | 
				
			
			@ -1103,7 +1104,11 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
 | 
			
		|||
 | 
			
		||||
		// This and releasesNeedCharts ensures that we run operations like helm-dep-build and prepare-hook calls only on
 | 
			
		||||
		// releases that are (1) selected by the selectors and (2) to be installed.
 | 
			
		||||
		selected, err = st.GetSelectedReleases(opts.IncludeTransitiveNeeds)
 | 
			
		||||
		selected, err = st.GetSelectedReleases(NeedsOptions{
 | 
			
		||||
			IncludeTransitiveNeeds: opts.IncludeTransitiveNeeds,
 | 
			
		||||
			IncludeNeeds:           opts.IncludeNeeds,
 | 
			
		||||
			SkipNeeds:              true,
 | 
			
		||||
		})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, []error{err}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -2155,16 +2160,16 @@ func (st *HelmState) GetReleasesWithOverrides() []ReleaseSpec {
 | 
			
		|||
	return rs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (st *HelmState) SelectReleases(includeTransitiveNeeds bool) ([]Release, error) {
 | 
			
		||||
func (st *HelmState) SelectReleases(needsOptions NeedsOptions) ([]Release, error) {
 | 
			
		||||
	values := st.Values()
 | 
			
		||||
	rs, err := markExcludedReleases(st.Releases, st.Selectors, st.CommonLabels, values, includeTransitiveNeeds)
 | 
			
		||||
	rs, err := markExcludedReleases(st.Releases, st.Selectors, st.CommonLabels, values, needsOptions)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return rs, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabels map[string]string, values map[string]any, includeTransitiveNeeds bool) ([]Release, error) {
 | 
			
		||||
func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabels map[string]string, values map[string]any, needsOptions NeedsOptions) ([]Release, error) {
 | 
			
		||||
	var filteredReleases []Release
 | 
			
		||||
	filters := []ReleaseFilter{}
 | 
			
		||||
	for _, label := range selectors {
 | 
			
		||||
| 
						 | 
				
			
			@ -2209,7 +2214,12 @@ func markExcludedReleases(releases []ReleaseSpec, selectors []string, commonLabe
 | 
			
		|||
		}
 | 
			
		||||
		filteredReleases = append(filteredReleases, res)
 | 
			
		||||
	}
 | 
			
		||||
	unmarkNeeds(filteredReleases, releases, includeTransitiveNeeds)
 | 
			
		||||
	if needsOptions.SkipNeeds {
 | 
			
		||||
		return filteredReleases, nil
 | 
			
		||||
	}
 | 
			
		||||
	if needsOptions.IncludeTransitiveNeeds || needsOptions.IncludeNeeds {
 | 
			
		||||
		unmarkNeeds(filteredReleases, releases, needsOptions.IncludeTransitiveNeeds)
 | 
			
		||||
	}
 | 
			
		||||
	return filteredReleases, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2279,8 +2289,8 @@ func collectNeeds(release ReleaseSpec, allReleases []ReleaseSpec, needs map[stri
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (st *HelmState) GetSelectedReleases(includeTransitiveNeeds bool) ([]ReleaseSpec, error) {
 | 
			
		||||
	filteredReleases, err := st.SelectReleases(includeTransitiveNeeds)
 | 
			
		||||
func (st *HelmState) GetSelectedReleases(needsOptions NeedsOptions) ([]ReleaseSpec, error) {
 | 
			
		||||
	filteredReleases, err := st.SelectReleases(needsOptions)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -2295,8 +2305,8 @@ func (st *HelmState) GetSelectedReleases(includeTransitiveNeeds bool) ([]Release
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// FilterReleases allows for the execution of helm commands against a subset of the releases in the helmfile.
 | 
			
		||||
func (st *HelmState) FilterReleases(includeTransitiveNeeds bool) error {
 | 
			
		||||
	releases, err := st.GetSelectedReleases(includeTransitiveNeeds)
 | 
			
		||||
func (st *HelmState) FilterReleases(needsOptions NeedsOptions) error {
 | 
			
		||||
	releases, err := st.GetSelectedReleases(needsOptions)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -2376,7 +2386,7 @@ func (st *HelmState) ResolveDeps() (*HelmState, error) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// UpdateDeps wrapper for updating dependencies on the releases
 | 
			
		||||
func (st *HelmState) UpdateDeps(helm helmexec.Interface, includeTransitiveNeeds bool) []error {
 | 
			
		||||
func (st *HelmState) UpdateDeps(helm helmexec.Interface, needsOptions NeedsOptions) []error {
 | 
			
		||||
	var selected []ReleaseSpec
 | 
			
		||||
 | 
			
		||||
	if len(st.Selectors) > 0 {
 | 
			
		||||
| 
						 | 
				
			
			@ -2384,7 +2394,7 @@ func (st *HelmState) UpdateDeps(helm helmexec.Interface, includeTransitiveNeeds
 | 
			
		|||
 | 
			
		||||
		// This and releasesNeedCharts ensures that we run operations like helm-dep-build and prepare-hook calls only on
 | 
			
		||||
		// releases that are (1) selected by the selectors and (2) to be installed.
 | 
			
		||||
		selected, err = st.GetSelectedReleases(includeTransitiveNeeds)
 | 
			
		||||
		selected, err = st.GetSelectedReleases(needsOptions)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return []error{err}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,6 +89,12 @@ func (st *HelmState) iterateOnReleases(helm helmexec.Interface, concurrency int,
 | 
			
		|||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type NeedsOptions struct {
 | 
			
		||||
	IncludeNeeds           bool
 | 
			
		||||
	IncludeTransitiveNeeds bool
 | 
			
		||||
	SkipNeeds              bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type PlanOptions struct {
 | 
			
		||||
	Purpose                string
 | 
			
		||||
	Reverse                bool
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +105,11 @@ type PlanOptions struct {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
func (st *HelmState) PlanReleases(opts PlanOptions) ([][]ReleaseSpec, error) {
 | 
			
		||||
	marked, err := st.GetSelectedReleases(opts.IncludeTransitiveNeeds)
 | 
			
		||||
	marked, err := st.GetSelectedReleases(NeedsOptions{
 | 
			
		||||
		IncludeNeeds:           opts.IncludeNeeds,
 | 
			
		||||
		IncludeTransitiveNeeds: opts.IncludeTransitiveNeeds,
 | 
			
		||||
		SkipNeeds:              opts.SkipNeeds,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2143,7 +2143,11 @@ generated: 2019-05-16T15:42:45.50486+09:00
 | 
			
		|||
	})
 | 
			
		||||
	fs.Cwd = basePath
 | 
			
		||||
	state = injectFs(state, fs)
 | 
			
		||||
	errs := state.UpdateDeps(helm, false)
 | 
			
		||||
	errs := state.UpdateDeps(helm, NeedsOptions{
 | 
			
		||||
		SkipNeeds:              true,
 | 
			
		||||
		IncludeNeeds:           false,
 | 
			
		||||
		IncludeTransitiveNeeds: false,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	want := []string{"/example", "./example", generatedDir}
 | 
			
		||||
	if !reflect.DeepEqual(helm.Charts, want) {
 | 
			
		||||
| 
						 | 
				
			
			@ -2567,7 +2571,11 @@ func TestHelmState_NoReleaseMatched(t *testing.T) {
 | 
			
		|||
				RenderedValues: map[string]any{},
 | 
			
		||||
			}
 | 
			
		||||
			state.Selectors = []string{tt.labels}
 | 
			
		||||
			errs := state.FilterReleases(false)
 | 
			
		||||
			errs := state.FilterReleases(NeedsOptions{
 | 
			
		||||
				SkipNeeds:              true,
 | 
			
		||||
				IncludeNeeds:           false,
 | 
			
		||||
				IncludeTransitiveNeeds: false,
 | 
			
		||||
			})
 | 
			
		||||
			if (errs != nil) != tt.wantErr {
 | 
			
		||||
				t.Errorf("ReleaseStatuses() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr)
 | 
			
		||||
				return
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue