Helmfile: No dependencies possible

Created on 12 Oct 2018  ·  9Comments  ·  Source: roboll/helmfile

repositories:
  - name: coreos
    url: https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/

releases:
- name: prometheus-operator
  namespace: monitoring
  chart: coreos/prometheus-operator
  values:
    - prometheus-operator-values.yml

- name: prometheus-server
  namespace: monitoring
  chart: coreos/kube-prometheus
  values:
    - prometheus-values.yml

The second sometimes gets executed first, causing it to fail as the first entry is needed first.

Would be nice to be able to specify that prometheus-server depends on prometheus-operator

Most helpful comment

anyway to specify that option in the helmfile ?

All 9 comments

@hans-d Hey!

There's no specific order of installation for releases in a helmfile.yaml. This is so because I believe components of distributed system shouldn't depend on ordering.

But there are two workarounds. Use --concurrency 1 to limit concurrency to 1, which has side-effect of syncing releases in the order of occurrence because helmfile doesn't explicitly sort them randomly.
Another one is to use sub-helmfiles.

Does either of these workarounds work for you?

helmfiles.d could help, but I have problems with it in combination with Environments (without copy-paste environment definitions to all helmfiles)

testing the --concurrency 1.
Perhaps I should rephrase it to: unable to specify dependencies between releases

anyway to specify that option in the helmfile ?

Assuming you're talking about concurrency - not yet. Sounds like a nice feature request though, given the momentum is to open up more operational options that are were formerly available as only with command-line flags, to first-class config keys in helmfile.yaml.

would be +1 to codify all needed helm options into the helmfile.yml

helmfiles.d could help, but I have problems with it in combination with Environments (without copy-paste environment definitions to all helmfiles)

@asychev Would layering help reducing the repeated environments?

Perhaps I should rephrase it to: unable to specify dependencies between releases

@hans-d Would sub-helmfiles help here?

helmfiles:
- cert-manager.yaml
- apps.yaml

then `helmfile apply` basically runs `helmfile -f cert-manager.yaml apply` followed by `helmfile -f apps.yaml apply`.

As similar as I've commented on #591, sub-helmfiles can be used for ordering.

Also @asychev you can now use bases and the chain of template parts #587 to reduce repetitions in your helmfiles when sub-helmfiles is used for ordering.

I'm closing this as fixed, but please feel free to reopen, of create an another issue to track specific feature request! Thanks.

Was this page helpful?
0 / 5 - 0 ratings