fix regression that `--namespace` breaks delete/destroy and possibly sync/apply as well
The problem was that `--namespace NS` had been not taken into account while deleting releases, that resulted in releases that should be deleted are not deleted.
This commit is contained in:
parent
8d7c79a323
commit
77082cef58
|
|
@ -451,7 +451,7 @@ func printBatches(batches [][]state.Release) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func withDAG(templated *state.HelmState, helm helmexec.Interface, logger *zap.SugaredLogger, reverse bool, converge func(*state.HelmState, helmexec.Interface) (bool, []error)) (bool, []error) {
|
func withDAG(templated *state.HelmState, helm helmexec.Interface, logger *zap.SugaredLogger, reverse bool, converge func(*state.HelmState, helmexec.Interface) (bool, []error)) (bool, []error) {
|
||||||
batches, err := state.PlanReleases(templated.Releases, templated.Selectors, reverse)
|
batches, err := templated.PlanReleases(reverse)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, []error{err}
|
return false, []error{err}
|
||||||
}
|
}
|
||||||
|
|
@ -679,7 +679,7 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, []error) {
|
||||||
Set: c.Set(),
|
Set: c.Set(),
|
||||||
}
|
}
|
||||||
|
|
||||||
allReleases := st.Releases
|
allReleases := st.GetReleasesWithOverrides()
|
||||||
|
|
||||||
var changedReleases []state.ReleaseSpec
|
var changedReleases []state.ReleaseSpec
|
||||||
var deletingReleases []state.ReleaseSpec
|
var deletingReleases []state.ReleaseSpec
|
||||||
|
|
@ -688,7 +688,7 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, []error) {
|
||||||
// TODO Better way to detect diff on only filtered releases
|
// TODO Better way to detect diff on only filtered releases
|
||||||
{
|
{
|
||||||
if len(st.Selectors) > 0 {
|
if len(st.Selectors) > 0 {
|
||||||
releases, err := st.GetFilteredReleases()
|
releases, err := st.GetSelectedReleasesWithOverrides()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, []error{err}
|
return false, []error{err}
|
||||||
}
|
}
|
||||||
|
|
@ -835,19 +835,12 @@ func (a *App) delete(r *Run, purge bool, c DestroyConfigProvider) (bool, []error
|
||||||
|
|
||||||
affectedReleases := state.AffectedReleases{}
|
affectedReleases := state.AffectedReleases{}
|
||||||
|
|
||||||
var toSync []state.ReleaseSpec
|
toSync, err := st.GetSelectedReleasesWithOverrides()
|
||||||
|
if err != nil {
|
||||||
if len(st.Selectors) > 0 {
|
return false, []error{err}
|
||||||
var err error
|
}
|
||||||
toSync, err = st.GetFilteredReleases()
|
if len(toSync) == 0 {
|
||||||
if err != nil {
|
return false, nil
|
||||||
return false, []error{err}
|
|
||||||
}
|
|
||||||
if len(toSync) == 0 {
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
toSync = st.Releases
|
|
||||||
}
|
}
|
||||||
|
|
||||||
toDelete, err := st.DetectReleasesToBeDeleted(helm, toSync)
|
toDelete, err := st.DetectReleasesToBeDeleted(helm, toSync)
|
||||||
|
|
@ -925,7 +918,7 @@ func (a *App) sync(r *Run, c SyncConfigProvider) (bool, []error) {
|
||||||
|
|
||||||
if len(st.Selectors) > 0 {
|
if len(st.Selectors) > 0 {
|
||||||
var err error
|
var err error
|
||||||
toSync, err = st.GetFilteredReleases()
|
toSync, err = st.GetSelectedReleasesWithOverrides()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, []error{err}
|
return false, []error{err}
|
||||||
}
|
}
|
||||||
|
|
@ -1047,7 +1040,7 @@ func (a *App) template(r *Run, c TemplateConfigProvider) (bool, []error) {
|
||||||
|
|
||||||
if len(st.Selectors) > 0 {
|
if len(st.Selectors) > 0 {
|
||||||
var err error
|
var err error
|
||||||
templatedReleases, err = st.GetFilteredReleases()
|
templatedReleases, err = st.GetSelectedReleasesWithOverrides()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, []error{err}
|
return false, []error{err}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1226,7 +1226,31 @@ func (st *HelmState) Clean() []error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func MarkFilteredReleases(releases []ReleaseSpec, selectors []string) ([]Release, error) {
|
func (st *HelmState) GetReleasesWithOverrides() []ReleaseSpec {
|
||||||
|
var rs []ReleaseSpec
|
||||||
|
for _, r := range st.Releases {
|
||||||
|
var spec ReleaseSpec
|
||||||
|
spec = r
|
||||||
|
st.ApplyOverrides(&spec)
|
||||||
|
rs = append(rs, spec)
|
||||||
|
}
|
||||||
|
return rs
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st *HelmState) SelectReleasesWithOverrides() ([]Release, error) {
|
||||||
|
rs, err := markFilteredReleases(st.GetReleasesWithOverrides(), st.Selectors)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, r := range rs {
|
||||||
|
spec := r.ReleaseSpec
|
||||||
|
st.ApplyOverrides(&spec)
|
||||||
|
r.ReleaseSpec = spec
|
||||||
|
}
|
||||||
|
return rs, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func markFilteredReleases(releases []ReleaseSpec, selectors []string) ([]Release, error) {
|
||||||
var filteredReleases []Release
|
var filteredReleases []Release
|
||||||
filters := []ReleaseFilter{}
|
filters := []ReleaseFilter{}
|
||||||
for _, label := range selectors {
|
for _, label := range selectors {
|
||||||
|
|
@ -1266,8 +1290,8 @@ func MarkFilteredReleases(releases []ReleaseSpec, selectors []string) ([]Release
|
||||||
return filteredReleases, nil
|
return filteredReleases, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (st *HelmState) GetFilteredReleases() ([]ReleaseSpec, error) {
|
func (st *HelmState) GetSelectedReleasesWithOverrides() ([]ReleaseSpec, error) {
|
||||||
filteredReleases, err := MarkFilteredReleases(st.Releases, st.Selectors)
|
filteredReleases, err := st.SelectReleasesWithOverrides()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -1282,7 +1306,7 @@ func (st *HelmState) GetFilteredReleases() ([]ReleaseSpec, error) {
|
||||||
|
|
||||||
// FilterReleases allows for the execution of helm commands against a subset of the releases in the helmfile.
|
// FilterReleases allows for the execution of helm commands against a subset of the releases in the helmfile.
|
||||||
func (st *HelmState) FilterReleases() error {
|
func (st *HelmState) FilterReleases() error {
|
||||||
releases, err := st.GetFilteredReleases()
|
releases, err := st.GetSelectedReleasesWithOverrides()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,8 +108,8 @@ type PlanOpts struct {
|
||||||
Reverse bool
|
Reverse bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func PlanReleases(releases []ReleaseSpec, selectors []string, reverse bool) ([][]Release, error) {
|
func (st *HelmState) PlanReleases(reverse bool) ([][]Release, error) {
|
||||||
marked, err := MarkFilteredReleases(releases, selectors)
|
marked, err := st.SelectReleasesWithOverrides()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue