fix: restore SelectedReleases handling in GroupReleasesByDependency and revert snapshots

The root cause of the CI failure was that GroupReleasesByDependency was changed
to use !r.Filtered instead of opts.SelectedReleases for the DAG plan's Only field.
When no selectors are active (like helmfile destroy), all releases are unfiltered,
causing all releases to be planned for deletion - including uninstalled ones.

Fix: Use opts.SelectedReleases when provided, fall back to Filtered flag otherwise.
Also remove unnecessary SelectedReleases block from PlanReleases since
GroupReleasesByDependency now handles it directly.
Restore test snapshots from main as the behavior should now match.

Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>
Agent-Logs-Url: https://github.com/helmfile/helmfile/sessions/170cecc0-7a3e-4326-98d3-4f2bffee1848
This commit is contained in:
copilot-swe-agent[bot]
2026-03-25 00:12:22 +00:00
co-authored by yxxhero
parent 0cf7ab6908
commit ed823115f1
49 changed files with 271 additions and 285 deletions
@@ -1,13 +1,11 @@
merged environment: &{default map[] map[] map[]}
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 foo
2 bar
processing releases in group 1/2: foo
processing releases in group 2/2: bar
processing releases in group 1/1: foo
Affected releases are:
bar (mychart2) DELETED
foo (mychart1) UPDATED
@@ -2,15 +2,5 @@ merged environment: &{default map[] map[] map[]}
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
GROUP RELEASES
1 bar
2 foo
processing releases in group 1/2: bar
processing releases in group 2/2: foo
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
Affected releases are:
bar (mychart2) DELETED
foo (mychart1) UPDATED
err: release "foo" depends on "bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
Failed to clean up temporary files generated while processing "helmfile.yaml": release "foo" depends on "bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
@@ -2,13 +2,11 @@ merged environment: &{default map[] map[] map[]}
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 bar
2 foo
1 foo
processing releases in group 1/2: bar
processing releases in group 2/2: foo
processing releases in group 1/1: foo
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
Affected releases are:
bar (mychart2) DELETED
@@ -2,15 +2,5 @@ merged environment: &{default map[] map[] map[]}
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
GROUP RELEASES
1 foo
2 bar
processing releases in group 1/2: foo
processing releases in group 2/2: bar
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
Affected releases are:
bar (mychart2) UPDATED
foo (mychart1) DELETED
err: release "bar" depends on "foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
Failed to clean up temporary files generated while processing "helmfile.yaml": release "bar" depends on "foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
@@ -1,13 +1,11 @@
merged environment: &{default map[] map[] map[]}
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 bar
2 foo
processing releases in group 1/2: bar
processing releases in group 2/2: foo
processing releases in group 1/1: bar
Affected releases are:
bar (mychart2) UPDATED
foo (mychart1) DELETED
+2 -4
View File
@@ -1,11 +1,9 @@
merged environment: &{default map[] map[] map[]}
2 release(s) found in helmfile.yaml
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 bar
2 foo
processing releases in group 1/2: bar
processing releases in group 2/2: foo
processing releases in group 1/1: bar
No affected releases
+4 -4
View File
@@ -6,14 +6,14 @@ GROUP RELEASES
1 logging, front-proxy
2 database, servicemesh
3 anotherbackend
4 backend-v1, backend-v2
5 frontend-v1, frontend-v2, frontend-v3
4 backend-v2
5 frontend-v2, frontend-v3
processing releases in group 1/5: logging, front-proxy
processing releases in group 2/5: database, servicemesh
processing releases in group 3/5: anotherbackend
processing releases in group 4/5: backend-v1, backend-v2
processing releases in group 5/5: frontend-v1, frontend-v2, frontend-v3
processing releases in group 4/5: backend-v2
processing releases in group 5/5: frontend-v2, frontend-v3
Affected releases are:
anotherbackend (charts/anotherbackend) UPDATED
backend-v1 (charts/backend) DELETED