Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: helmfile/helmfile

v1.7.0

Choose a tag to compare

@yxxhero yxxhero released this 04 Jul 12:14
e94aadf

What's Changed

  • build(deps): bump azure/setup-helm from 5.0.0 to 5.0.1 by @dependabot[bot] in #2664
  • fix: ensure OCI charts are prepared for needed releases with --include-needs by @yxxhero in #2663
  • fix: serialize concurrent helm operations for same chart to fix #768 by @yxxhero in #2662
  • fix: clean up chartify temp directories after helm operations by @yxxhero in #2668
  • feat: add --template-args flag to template/apply/sync for helm lookup() support by @yxxhero in #2666
  • fix: support go-getter URLs in ad-hoc dependencies to fix #821 by @yxxhero in #2670
  • test: add integration test for issue #1880 transformers with file:// deps by @yxxhero in #2673
  • fix: replace YAML-based DeepCopy with recursive deep copy to fix #973 by @yxxhero in #2675
  • build(deps): bump github.com/helmfile/vals from 0.44.2 to 0.44.3 by @dependabot[bot] in #2677
  • test: add integration test for selector filtering with requiredEnv (#1172) by @yxxhero in #2678
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.25 to 1.32.26 by @dependabot[bot] in #2681
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.104.0 to 1.104.1 by @dependabot[bot] in #2682
  • feat: add inherits: for sub-helmfile config inheritance by @yxxhero in #2680
  • feat: Add ConditionTemplate support in releaseSpec by @agarov in #2669
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.26 to 1.32.27 by @dependabot[bot] in #2684
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.104.1 to 1.104.2 by @dependabot[bot] in #2685
  • build(deps): bump github.com/helmfile/vals from 0.44.3 to 0.44.4 by @dependabot[bot] in #2686

New Contributors

Full Changelog: v1.6.0...v1.7.0

v1.6.0

Choose a tag to compare

@yxxhero yxxhero released this 22 Jun 23:06
9e66f55

Helmfile v1.6.0

This release introduces helmfile doctor — an AI-assisted diff analyzer that
reads your helmfile diff output and asks an LLM to summarize the changes and
flag risks before you apply them. We also ship parallel kubedog tracking
so resource convergence now happens alongside (not after) helm execution.


🩺 helmfile doctor: AI-assisted diff analysis

helmfile doctor runs helmfile diff, then sends the diff to any
OpenAI-compatible Chat Completions endpoint to produce a structured risk
report. It is designed to drop into a CI pipeline before helmfile apply so a
human reviewer (or a gate) gets a fast, opinionated second opinion on what is
about to change.

Quick start

# Configure via env (lowest precedence)...
export HELMFILE_LLM_API_KEY="sk-..."
export HELMFILE_LLM_MODEL="gpt-4o"

# ...or helmfile.yaml...
llm:
  baseURL: "https://api.openai.com/v1"
  apiKey: {{ env "OPENAI_API_KEY" }}
  model: "gpt-4o"

# ...or flags (highest precedence)
helmfile doctor --llm-model claude-3-5-sonnet
helmfile doctor

Example output:

# Helmfile Doctor Report

## Summary
Upgrades the checkout Deployment from v1.4 to v1.5 and raises the replica
count from 3 to 5. The database StatefulSet is unchanged.

## Risks

### 🔴 [HIGH] data-loss
The PVC `data-checkout-0` is marked for deletion ...
**Suggestion:** `kubectl get pvc data-checkout-0 -o yaml` before applying.

### 🟡 [MEDIUM] downtime
No PodDisruptionBudget found for the checkout Deployment ...
**Suggestion:** Add a PDB before scaling.

---
Model: gpt-4o | Duration: 8.2s | Secrets redacted: 3

How it works

  1. Runs helmfile diff (with --context defaulting to 3 so the model gets
    enough surrounding YAML to ground its analysis).
  2. Runs the diff through a defense-in-depth secret redactor (see below).
  3. Sends the redacted diff to the LLM with a system prompt that frames it as a
    senior Kubernetes/Helm reviewer and locks the output to a known JSON schema.
  4. Renders a markdown report (or --output json for programmatic consumption).

Risk model

The model evaluates the diff across six categories and three severity levels:

Category What it catches
data-loss PVCs, databases, stateful workloads deleted/recreated
security New privileges, host networking, plaintext secrets
breaking-change Renamed values, dropped labels, apiVersion downgrades
downtime Missing PDBs, rolling-update storms, missing readiness gates
performance Huge resource requests, removed HPA, expensive sidecars
best-practice Missing namespace, hardcoded images, misaligned labels

Severity drives the exit code, making doctor a CI gate:

  • 0 — success, or only low/medium risks, or LLM call failed (degraded mode).
  • 2 — at least one high risk and --force was not passed.
    (helm-diff's own "detected changes" exit-2 is intentionally swallowed —
    changes are doctor's whole job.)
  • 1 — other error (state load failure, helm-diff runtime failure, etc.).

Pass --force to keep the report but skip the high-risk gate.

Secret safety

Secrets are always redacted before any byte leaves the process — there is
no opt-out. This is enforced in two layers:

  1. --show-secrets is silently ignored; the diff config is wrapped so
    ShowSecrets() returns false, making helm-diff itself emit <REDACTED>.
  2. A built-in SecretRedactor then strips any residual secret-looking content
    (Secret resource data: blocks, sensitive key names like password /
    apiKey / token, free-form long base64, and JWT-shaped tokens). The
    redaction count is always shown in the report footer so you can spot
    unexpected leaks.

JSON output (--output json) exposes only post-redaction diffs — doctor never
echoes raw pre-redaction content through stdout or JSON.

Graceful degradation

When no LLM is configured (no HELMFILE_LLM_API_KEY / model / llm: block /
--llm-* flags), doctor degrades to a plain helmfile diff with
--show-secrets forced off — byte-for-byte identical behavior, just safer.

Configuration precedence

env (HELMFILE_LLM_*)  <  helmfile.yaml (llm:)  <  CLI flags (--llm-*)
Flag Purpose
--llm-base-url OpenAI-compatible endpoint URL
--llm-api-key API key (prefer helmfile.yaml + {{ env }} over the CLI)
--llm-model Model id (gpt-4o, claude-3-5-sonnet via gateway, ...)
--llm-timeout Per-request timeout (default 60s)
--llm-max-tokens Completion cap (default 4096)
--force Skip the high-risk exit-2 gate
--output Report format: text (default) or json
--diff-output helm-diff plugin output format (renamed from --output)

Most helmfile diff flags are accepted for parity. See helmfile doctor --help.

See #2660.


⚡ Parallel kubedog tracking with progress printer

With --track-mode kubedog, resource tracking now runs in parallel with
helm
instead of waiting for helm to finish. Helmfile templates the release
upfront, launches the kubedog tracker in a goroutine, and streams live progress
while helm installs/upgrades.

Safety valves protect against the known upstream-kubedog races:

  • Cluster-convergence confirmation — when kubedog's resource graph stalls,
    helmfile queries the live API to confirm convergence and cancels the tracker.
  • helm-killer — if the cluster confirms all resources converged but helm is
    wedged on its hook waiter, helmfile deliberately interrupts the stuck helm
    subprocess and treats it as success.
  • Hard timeout — a tracker that never returns within the release timeout is
    treated as a failure.
  • Buffered helm output — helm's stdout is captured into a per-release buffer
    and replayed as a single block so it never interleaves with kubedog progress.

See #2654.


🐛 Bug fixes

  • Fix OCI chart dependency resolution when the chart path contains underscores.
    Paths like oci://registry/charts_my_app were being mis-split, breaking
    helmfile deps. #2648
  • Resolve symlinked plugin directories in GetPluginVersion. Plugin
    directories reached through symlinks (e.g. via XDG_DATA_DIRS) are now
    followed correctly, fixing spurious "plugin not installed" errors.
    #2661

📦 Dependencies

  • bump github.com/aws/aws-sdk-go-v2/service/s3 1.103.3 → 1.104.0
  • bump github.com/containerd/containerd 1.7.32 → 1.7.33
  • bump github.com/helmfile/vals 0.44.1 → 0.44.2
  • bump github.com/helmfile/chartify 0.26.5 → 0.27.0
  • bump helm to v4.2.2 (and v3.21.2 for the v3 track)
  • bump actions/checkout v6 → v7

📚 Docs

  • Fix a duplicated word in the hcl_funcs log description.
    #2647 — thanks @s3onghyun
    (first contribution!)
  • Small documentation indentation fixes.
    #2655 — thanks @fiete2017
    (first contribution!)

Full Changelog: v1.5.5...v1.6.0

v1.5.5

Choose a tag to compare

@yxxhero yxxhero released this 17 Jun 01:08
bbceb05

What's Changed

  • fix: restore s3:: vhost-style remote source support (#2643) by @yxxhero in #2644
  • feat: add helm 4 --server-side flag support for diff and bump helm-diff to v3.15.10 by @yxxhero in #2645

Full Changelog: v1.5.4...v1.5.5

v1.5.4

Choose a tag to compare

@yxxhero yxxhero released this 16 Jun 00:25
a94fdf4

What's Changed

  • build(deps): bump golang.org/x/term from 0.43.0 to 0.44.0 by @dependabot[bot] in #2629
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.23 to 1.32.24 by @dependabot[bot] in #2627
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.103.2 to 1.103.3 by @dependabot[bot] in #2628
  • fix: Fix broken trackLogs functionality in Kubedog tracker by @ggillies in #2630
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.24 to 1.32.25 by @dependabot[bot] in #2632
  • Bump Helm support to 4.2.1 and 3.21.1 by @Copilot in #2635
  • build(deps): bump github.com/helmfile/vals from 0.44.0 to 0.44.1 by @dependabot[bot] in #2637
  • build(deps): bump github.com/helmfile/chartify from 0.26.4 to 0.26.5 by @dependabot[bot] in #2636
  • Add App.WithFileSystem by @toyamagu-2021 in #2638
  • fix: include release values in .Values for patch template rendering by @yxxhero in #2556
  • build(deps): bump helm-diff to v3.15.9 by @yxxhero in #2642
  • feat: add support for helm 4 --server-side upgrade flag by @yxxhero in #2641

New Contributors

Full Changelog: v1.5.3...v1.5.4

v1.5.3

Choose a tag to compare

@yxxhero yxxhero released this 09 Jun 09:57
8f6ed68

What's Changed

  • build(deps): bump github.com/gookit/color from 1.5.4 to 1.6.1 by @dependabot[bot] in #2608
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.17 to 1.32.18 by @dependabot[bot] in #2610
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.101.0 to 1.102.0 by @dependabot[bot] in #2612
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.102.0 to 1.102.1 by @dependabot[bot] in #2613
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.18 to 1.32.20 by @dependabot[bot] in #2614
  • fix: support array of maps in set/setTemplate values by @yxxhero in #2615
  • fix: remove naked return by returning expected values by @ceriath in #2617
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.102.1 to 1.103.0 by @dependabot[bot] in #2619
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.20 to 1.32.21 by @dependabot[bot] in #2618
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.103.0 to 1.103.1 by @dependabot[bot] in #2620
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.21 to 1.32.22 by @dependabot[bot] in #2621
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.103.1 to 1.103.2 by @dependabot[bot] in #2622
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.22 to 1.32.23 by @dependabot[bot] in #2623
  • Bump helm-diff to v3.15.8 across runtime defaults and execution environments by @Copilot in #2624
  • build(deps): bump golang.org/x/sync from 0.20.0 to 0.21.0 by @dependabot[bot] in #2625

Full Changelog: v1.5.2...v1.5.3

v1.5.2

Choose a tag to compare

@yxxhero yxxhero released this 22 May 01:17
33eadc9

What's Changed

  • Bump Helm support to 3.21.0 and 4.2.0 by @Copilot in #2588
  • bump helm-diff to v3.15.7 by @Copilot in #2591
  • fix: refresh Chart.lock after rewriting file:// dependencies by @sstarcher in #2587
  • feat: support HELMFILE_KUBE_CONTEXT env var for default kube context by @dschmidt in #2593
  • feat: support HELMFILE_NAMESPACE env var for default namespace by @dschmidt in #2592
  • fix: normalize dependency chart path before DirectoryExistsAt check by @yxxhero in #2598
  • Add jsonPatches regression coverage for chartify lookup rendering by @Copilot in #2586
  • feat: add defaultInherit for automatic release template inheritance by @yxxhero in #2600
  • fix: restore kubedog status progress output during tracking by @yxxhero in #2602
  • feat: show diff preview when sync --interactive is used by @vomba in #2603
  • build(deps): bump github.com/containerd/containerd from 1.7.30 to 1.7.32 by @dependabot[bot] in #2607
  • feat: support HELMFILE_* env vars for more global flags by @dschmidt in #2606

New Contributors

Full Changelog: v1.5.1...v1.5.2

v1.5.1

Choose a tag to compare

@yxxhero yxxhero released this 11 May 14:33
c82c61e

What's Changed

  • fix: add trackFailOnError option to control kubedog exit code by @yxxhero in #2576
  • docs: update helmfile skill to reflect v1.1 documentation by @yxxhero in #2577
  • fix(state): resolve OCI repo prefix in ad-hoc release dependencies by @dschmidt in #2579
  • feat(state): add mergeStrategy: fallback for first-file-wins env values by @dschmidt in #2578
  • Expose internal apis by @ceriath in #2520
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.100.1 to 1.101.0 by @dependabot[bot] in #2581
  • chore: Deduplicate preparation code of sync and apply by @ceriath in #2523
  • build(deps): bump gitpython from 3.1.47 to 3.1.49 in /docs by @dependabot[bot] in #2582
  • chore: Emit "cleanup" events later to match the behavior in "apply" by @ceriath in #2522
  • build(deps): bump golang.org/x/term from 0.42.0 to 0.43.0 by @dependabot[bot] in #2584
  • build(deps): bump gitpython from 3.1.49 to 3.1.50 in /docs by @dependabot[bot] in #2585
  • fix: template helmDefaults.postRendererArgs with release data by @yxxhero in #2583

Full Changelog: v1.5.0...v1.5.1

v1.5.0

Choose a tag to compare

@yxxhero yxxhero released this 03 May 12:59
7cc5fe0

What's Changed

  • feat: add --write-output flag to helmfile fetch for air-gapped environments by @yxxhero in #2572
  • feat: add 'create' subcommand to scaffold helmfile deployment projects by @yxxhero in #2574
  • docs: restructure documentation and improve newcomer experience by @yxxhero in #2573
  • docs: deduplicate Technical Details sections in values-and-merging.md by @yxxhero in #2575

Full Changelog: v1.4.5...v1.5.0

v1.4.5

Choose a tag to compare

@yxxhero yxxhero released this 02 May 02:17
a8e8b67

What's Changed

  • build(deps): bump go.opentelemetry.io/otel/sdk from 1.42.0 to 1.43.0 by @dependabot[bot] in #2524
  • chore: rename variables to match in apply and sync by @ceriath in #2521
  • chore: bump Helm to v4.1.4 by @Copilot in #2525
  • build(deps): bump golang.org/x/term from 0.41.0 to 0.42.0 by @dependabot[bot] in #2529
  • bump helm v3.20.1 to v3.20.2 by @Copilot in #2530
  • build(deps): bump github.com/helmfile/vals from 0.43.8 to 0.43.9 by @dependabot[bot] in #2533
  • Update Go from 1.25.8 to 1.26.2 by @Copilot in #2535
  • fix: boolean false overrides dropped in multi-document helmfiles (#2527) by @yxxhero in #2532
  • build(deps): bump github.com/helmfile/chartify from 0.26.2 to 0.26.3 by @dependabot[bot] in #2538
  • fix: add mutex lock for concurrent rewriteChartDependencies access by @yxxhero in #2509
  • fix: update state values files handling to replace arrays instead of merging by @Moglum in #2537
  • fix: helmDefaults.postRendererArgs not passed to helm commands by @yxxhero in #2510
  • enabledns flags available on template command by @Diliz in #2511
  • build(deps): bump k8s.io/apimachinery from 0.35.3 to 0.35.4 by @dependabot[bot] in #2540
  • build(deps): bump k8s.io/client-go from 0.35.3 to 0.35.4 by @dependabot[bot] in #2539
  • build(deps): bump github.com/zclconf/go-cty from 1.18.0 to 1.18.1 by @dependabot[bot] in #2542
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.14 to 1.32.15 by @dependabot[bot] in #2543
  • fix: eliminate race condition in rewriteChartDependencies by @yxxhero in #2541
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.99.0 to 1.99.1 by @dependabot[bot] in #2546
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.15 to 1.32.16 by @dependabot[bot] in #2547
  • build(deps): bump k8s.io/apimachinery from 0.35.4 to 0.36.0 by @dependabot[bot] in #2553
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.99.1 to 1.100.0 by @dependabot[bot] in #2552
  • Fix helmfile init failing to update outdated helm plugins with Helm v4 by @Copilot in #2554
  • fix: skip subhelmfiles when selectors conflict with CLI selectors by @yxxhero in #2545
  • build(deps): bump gitpython from 3.1.41 to 3.1.47 in /docs by @dependabot[bot] in #2555
  • fix: apply post-renderer to output-dir-template output by @yxxhero in #2531
  • build(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0 by @dependabot[bot] in #2557
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.100.0 to 1.100.1 by @dependabot[bot] in #2558
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.16 to 1.32.17 by @dependabot[bot] in #2559
  • update readme add install from source by @Sianao in #2561
  • Honor skipSchemaValidation during chartification when forceNamespace is set by @Copilot in #2550
  • build(deps): bump github.com/Masterminds/semver/v3 from 3.4.0 to 3.5.0 by @dependabot[bot] in #2565
  • fix: deduplicate chart dependencies in helmfile.lock by @yxxhero in #2567
  • build(deps): replace werf/kubedog-for-werf-helm with werf/kubedog by @yxxhero in #2568
  • build(deps): bump helmfile/vals from v0.43.9 to v0.44.0 by @yxxhero in #2569
  • fix: use --post-renderer-args=VALUE format to prevent Helm flag parsing failure by @yxxhero in #2570

New Contributors

Full Changelog: v1.4.4...v1.4.5

v1.4.4

Choose a tag to compare

@yxxhero yxxhero released this 08 Apr 00:26
e8cbe7e

What's Changed

  • build(deps): bump azure/setup-helm from 4.3.1 to 5.0.0 by @dependabot[bot] in #2499
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.97.1 to 1.97.2 by @dependabot[bot] in #2500
  • fix: helmfile fetch fails for kustomization directories by @yxxhero in #2504
  • fix: keep all chart dependencies key / values by @champtar in #2501
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.97.2 to 1.97.3 by @dependabot[bot] in #2505
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.12 to 1.32.13 by @dependabot[bot] in #2506
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.97.3 to 1.98.0 by @dependabot[bot] in #2512
  • build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by @dependabot[bot] in #2513
  • chore: update go version to 1.25.8 by @eadred in #2514
  • build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.13 to 1.32.14 by @dependabot[bot] in #2516
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.98.0 to 1.99.0 by @dependabot[bot] in #2517
  • build(deps): bump github.com/helmfile/vals from 0.43.7 to 0.43.8 by @dependabot[bot] in #2518

New Contributors

Full Changelog: v1.4.3...v1.4.4