Fix lint and status not to fail with selector and needs (#1834)
Fixes #1830
This commit is contained in:
parent
48bd5c0979
commit
794ab9fc66
|
|
@ -1447,13 +1447,12 @@ func (a *App) lint(r *Run, c LintConfigProvider) (bool, []error) {
|
||||||
// on running various helm commands on unnecessary releases
|
// on running various helm commands on unnecessary releases
|
||||||
st.Releases = selectedReleases
|
st.Releases = selectedReleases
|
||||||
|
|
||||||
releasesToRender := map[string]state.ReleaseSpec{}
|
var toLint []state.ReleaseSpec
|
||||||
for _, r := range selectedReleases {
|
for _, r := range selectedReleases {
|
||||||
id := state.ReleaseToID(&r)
|
|
||||||
if r.Installed != nil && !*r.Installed {
|
if r.Installed != nil && !*r.Installed {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
releasesToRender[id] = r
|
toLint = append(toLint, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
var errs []error
|
var errs []error
|
||||||
|
|
@ -1470,18 +1469,8 @@ func (a *App) lint(r *Run, c LintConfigProvider) (bool, []error) {
|
||||||
helm.SetExtraArgs(args...)
|
helm.SetExtraArgs(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(releasesToRender) > 0 {
|
if len(toLint) > 0 {
|
||||||
_, templateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{Reverse: false, SkipNeeds: true}, a.Wrap(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
_, templateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{SelectedReleases: toLint, Reverse: false, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
||||||
var rs []state.ReleaseSpec
|
|
||||||
|
|
||||||
for _, r := range subst.Releases {
|
|
||||||
if r2, ok := releasesToRender[state.ReleaseToID(&r)]; ok {
|
|
||||||
rs = append(rs, r2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
subst.Releases = rs
|
|
||||||
|
|
||||||
opts := &state.LintOpts{
|
opts := &state.LintOpts{
|
||||||
Set: c.Set(),
|
Set: c.Set(),
|
||||||
}
|
}
|
||||||
|
|
@ -1513,13 +1502,12 @@ func (a *App) status(r *Run, c StatusesConfigProvider) (bool, []error) {
|
||||||
// on running various helm commands on unnecessary releases
|
// on running various helm commands on unnecessary releases
|
||||||
st.Releases = selectedAndNeededReleases
|
st.Releases = selectedAndNeededReleases
|
||||||
|
|
||||||
releasesToRender := map[string]state.ReleaseSpec{}
|
var toStatus []state.ReleaseSpec
|
||||||
for _, r := range selectedReleases {
|
for _, r := range selectedReleases {
|
||||||
id := state.ReleaseToID(&r)
|
|
||||||
if r.Installed != nil && !*r.Installed {
|
if r.Installed != nil && !*r.Installed {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
releasesToRender[id] = r
|
toStatus = append(toStatus, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
var errs []error
|
var errs []error
|
||||||
|
|
@ -1536,18 +1524,8 @@ func (a *App) status(r *Run, c StatusesConfigProvider) (bool, []error) {
|
||||||
helm.SetExtraArgs(args...)
|
helm.SetExtraArgs(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(releasesToRender) > 0 {
|
if len(toStatus) > 0 {
|
||||||
_, templateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{Reverse: false, SkipNeeds: true}, a.Wrap(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
_, templateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{SelectedReleases: toStatus, Reverse: false, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
||||||
var rs []state.ReleaseSpec
|
|
||||||
|
|
||||||
for _, r := range subst.Releases {
|
|
||||||
if r2, ok := releasesToRender[state.ReleaseToID(&r)]; ok {
|
|
||||||
rs = append(rs, r2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
subst.Releases = rs
|
|
||||||
|
|
||||||
return subst.ReleaseStatuses(helm, c.Concurrency())
|
return subst.ReleaseStatuses(helm, c.Concurrency())
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue