helmfile/pkg/app
yxxhero 8e38fb02dd fix: enable kubedog tracking with atomic/rollback-on-failure helm flags
When using atomic: true with trackMode: kubedog, the --atomic flag was
passed to Helm which caused Helm to wait for resources and rollback
internally before helmfile could start kubedog tracking. This prevented
users from seeing deployment logs and errors.

Changes:
- Add RollbackRelease method to helmexec interface and implementation
- Add appendAtomicFlags function that skips --atomic when kubedog is enabled
- Add handleKubedogFailure function to manually rollback on tracking failure
- Update flagsForUpgrade to use new atomic flag handling
- Add tests for appendAtomicFlags behavior

Now when atomic: true and trackMode: kubedog are both enabled:
1. Helm upgrade runs without --atomic (no internal wait)
2. kubedog tracks resources immediately (users can see logs)
3. If kubedog tracking fails, helmfile manually executes rollback
4. Atomic semantics are preserved

Fixes: #2448
Signed-off-by: yxxhero <aiopsclub@163.com>
2026-03-03 20:45:16 +08:00
..
testdata fix: eliminate os.Chdir in sequential helmfiles to fix relative path resolution (#2410) 2026-02-22 09:21:46 +08:00
version feat: optimize version output (#412) 2022-10-08 14:26:15 +09:00
app.go feat: kubedog integration with unified resource handling (#2383) 2026-03-02 17:15:12 +08:00
app_apply_hooks_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_apply_nokubectx_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_apply_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_diff_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_gethelm_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_lint_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_list_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_parallel_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
app_sequential_test.go fix: use absolute baseDir in sequential helmfiles for correct values path resolution (#2425) 2026-02-26 07:47:39 +08:00
app_sync_test.go feat: kubedog integration with unified resource handling (#2383) 2026-03-02 17:15:12 +08:00
app_template_test.go fix: pass --kube-context to helm template when using jsonPatches (#2363) 2026-01-16 20:32:33 +08:00
app_test.go fix: enable kubedog tracking with atomic/rollback-on-failure helm flags 2026-03-03 20:45:16 +08:00
app_unittest_test.go feat: add `helmfile unittest` command for helm-unittest integration (#2400) 2026-02-16 09:45:10 +08:00
ask.go build(deps): bump golangci/golangci-lint-action from 6 to 7 (#1975) 2025-03-28 07:52:06 +08:00
config.go feat: kubedog integration with unified resource handling (#2383) 2026-03-02 17:15:12 +08:00
constants.go Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
constants_test.go fix lint error 2022-08-13 07:40:32 +08:00
context.go perf(app): Parallelize helmfile.d rendering and eliminate chdir race conditions (#2261) 2025-11-15 16:19:41 +08:00
context_test.go perf(app): Parallelize helmfile.d rendering and eliminate chdir race conditions (#2261) 2025-11-15 16:19:41 +08:00
dag_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
desired_state_file_loader.go fix: helmBinary setting ignored in multi-document YAML files (#2414) 2026-02-20 22:12:38 +08:00
destroy_nokubectx_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
destroy_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
diff_nokubectx_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
diff_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
errors.go
errors_test.go add unittest for error.go in pkg/app 2022-04-28 09:01:02 +08:00
formatters.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
formatters_test.go cleanup: remove panic in testutil (#890) 2023-06-13 13:44:32 +08:00
init.go build: update helm-diff to v3.15.1 (#2442) 2026-02-28 09:56:11 +08:00
init_test.go fix: prevent panic in helmfile init on plugin install errors (#2401) 2026-02-18 08:57:11 +08:00
load_opts.go Use goccy/go-yaml for v1 / Prep bringing back go-yaml v2 for v0.x (#604) 2022-12-27 10:14:35 +09:00
load_opts_test.go add Go lint 2022-07-16 20:21:11 +08:00
print_env.go feat: add print-env command (#2279) 2025-11-28 08:46:37 +08:00
print_env_test.go feat: add print-env command (#2279) 2025-11-28 08:46:37 +08:00
run.go fix: resolve issues #2295, #2296, and #2297 (#2298) 2025-11-27 22:13:03 +08:00
snapshot_test.go Use log capturing helper in TestApply_hooks 2022-11-13 08:20:13 +00:00
two_pass_renderer.go build(deps): bump golangci/golangci-lint-action from 6 to 7 (#1975) 2025-03-28 07:52:06 +08:00
two_pass_renderer_test.go Remove all v0.x references (#1919) 2025-03-08 07:43:21 -06:00
validate_config.go add Go lint 2022-07-16 20:21:11 +08:00
validate_config_test.go add unittest for ValidateConfig 2022-04-27 07:38:22 +08:00