helmfile/cmd
Dominik Schmidt ad45f0a1b9 feat: add dir= selector for path-based release filtering and traversal skip
Introduce a new selector key `dir=<path>` to the -l/--selector flag with two
effects: it filters releases by the directory of their defining helmfile
relative to the root helmfile (using directory-prefix matching, so
dir=apps/foo matches both apps/foo and apps/foo/sub), and it short-circuits
sub-helmfile traversal when paired with positive dir= constraints, so
non-matching branches in the helmfiles: tree are not parsed, templated, or
fetched.

The motivation is consuming aggregator-style upstreams that the operator
does not control (opendesk being the immediate example), where the user
cannot restructure the helmfile layout but still wants to act on a subset.

The dir label is auto-populated at filter time only; user-facing label
output is unchanged. The label key "dir" is reserved at state load.
Selectors that escape the root via .. or absolute paths, and the bare ".",
are rejected at parse time.

Signed-off-by: Dominik Schmidt <dev@dominik-schmidt.de>
2026-05-22 17:20:52 +02:00
..
apply.go fix: add trackFailOnError option to control kubedog exit code (#2576) 2026-05-04 14:20:03 +08:00
build.go Optimize cmd pkg (#384) 2022-10-05 11:02:24 +09:00
cache.go Merge branch 'main' into update_golang_lint 2022-08-14 12:21:10 +09:00
create.go feat: add 'create' subcommand to scaffold helmfile deployment projects (#2574) 2026-05-03 19:03:11 +08:00
deps.go fix --debug flag 2022-10-25 08:24:23 +08:00
destroy.go Create DeleteWait and DeleteTimeout parameters for Destroy (#1177) 2023-12-05 08:38:37 +08:00
diff.go Issue-1883 fix (#2058) 2025-11-19 07:45:56 +08:00
fetch.go feat: add --write-output flag to helmfile fetch for air-gapped environments (#2572) 2026-05-03 18:32:30 +08:00
init.go Add subcommand init for checks and installs helmfile deps (#389) 2022-11-03 14:51:30 +08:00
lint.go feat: add/expose cli flags (#771) 2023-04-02 14:53:52 +08:00
list.go Optimize cmd pkg (#384) 2022-10-05 11:02:24 +09:00
print_env.go feat: add print-env command (#2279) 2025-11-28 08:46:37 +08:00
repos.go fix: repos command help message (#698) 2023-02-15 07:23:50 +08:00
root.go feat: add dir= selector for path-based release filtering and traversal skip 2026-05-22 17:20:52 +02:00
root_test.go feat: add dir= selector for path-based release filtering and traversal skip 2026-05-22 17:20:52 +02:00
show-dag.go Update DAG with dependencies (#1477) 2024-04-27 07:37:28 +08:00
status.go fix --debug flag 2022-10-25 08:24:23 +08:00
sync.go feat: show diff preview when sync --interactive is used (#2603) 2026-05-21 20:47:00 +08:00
template.go feat: support .Environment.* in --output-dir-template (#2375) 2026-02-14 11:54:43 +08:00
test.go feat: add/expose cli flags (#771) 2023-04-02 14:53:52 +08:00
unittest.go feat: add `helmfile unittest` command for helm-unittest integration (#2400) 2026-02-16 09:45:10 +08:00
write-values.go feat: add/expose cli flags (#771) 2023-04-02 14:53:52 +08:00