WIP: fix include-needs to only include direct dependencies
- Add IncludeNeeds field to ChartPrepareOptions
- Update PrepareCharts to use GetSelectedReleasesWithNeeds
- Add GetSelectedReleasesWithNeeds function to handle both includeNeeds and includeTransitiveNeeds
- Update all callers to pass IncludeNeeds flag
Signed-off-by: yxxhero <aiopsclub@163.com>
(cherry picked from commit 3a701d3e80)
Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
parent
1ef6087f32
commit
28753f9bde
|
|
@ -169,6 +169,7 @@ func (a *App) Diff(c DiffConfigProvider) error {
|
|||
IncludeCRDs: &includeCRDs,
|
||||
Validate: c.Validate(),
|
||||
Concurrency: c.Concurrency(),
|
||||
IncludeNeeds: c.IncludeNeeds(),
|
||||
IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(),
|
||||
}, func() {
|
||||
msg, matched, affected, errs = a.diff(run, c)
|
||||
|
|
|
|||
|
|
@ -1819,7 +1819,7 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
|
|||
}
|
||||
*st = *updated
|
||||
}
|
||||
selected, err := st.GetSelectedReleases(opts.IncludeTransitiveNeeds)
|
||||
selected, err := st.GetSelectedReleasesWithNeeds(opts.IncludeNeeds, opts.IncludeTransitiveNeeds)
|
||||
if err != nil {
|
||||
return nil, []error{err}
|
||||
}
|
||||
|
|
@ -3116,6 +3116,31 @@ func (st *HelmState) GetSelectedReleases(includeTransitiveNeeds bool) ([]Release
|
|||
return releases, nil
|
||||
}
|
||||
|
||||
func (st *HelmState) GetSelectedReleasesWithNeeds(includeNeeds bool, includeTransitiveNeeds bool) ([]ReleaseSpec, error) {
|
||||
var filteredReleases []Release
|
||||
var err error
|
||||
|
||||
if includeTransitiveNeeds {
|
||||
filteredReleases, err = st.SelectReleases(true)
|
||||
} else if includeNeeds {
|
||||
filteredReleases, err = st.SelectReleasesWithNeeds(false)
|
||||
} else {
|
||||
filteredReleases, err = st.SelectReleases(false)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var releases []ReleaseSpec
|
||||
for _, r := range filteredReleases {
|
||||
if !r.Filtered {
|
||||
releases = append(releases, r.ReleaseSpec)
|
||||
}
|
||||
}
|
||||
|
||||
return releases, nil
|
||||
}
|
||||
|
||||
// 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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue