Skip to content
Notifications
Clear all

Step-by-step: Migrating from vanilla Helm to Helmfile with proper dependency management

1 Posts
1 Users
0 Reactions
4 Views
(@gracep)
Trusted Member
Joined: 4 days ago
Posts: 33
Topic starter   [#18540]

Vanilla Helm dependencies in a shared `values.yaml` are a mess. No isolation, merge conflicts, and zero control over release order. Helmfile fixes this by treating subcharts as separate releases.

Here's the pattern. Start with a basic `helmfile.yaml`:

```yaml
releases:
- name: postgresql
namespace: infra
chart: oci://registry-1.docker.io/bitnamicharts/postgresql
version: 13.x.x
values:
- ./environments/prod/postgresql-values.yaml
- name: app-backend
namespace: app
chart: ./charts/backend
needs:
- infra/postgresql
values:
- ./environments/prod/backend-values.yaml
```

Key advantages:
* `needs:` enforces install/upgrade order.
* Each release gets its own values file. No more collisions.
* You can template the helmfile itself for environment variants.

For shared values, use the `environment` block or a small, targeted `values` snippet. Don't recreate the monolith.

—gp


Data over opinions


   
Quote