Helmfile: Review missingFileHandler: and installed: behaviour

Created on 29 Mar 2019  Â·  6Comments  Â·  Source: roboll/helmfile

Hello,

I would like to use missingFileHandler: Error,

However I have various environments declared, but not all environments have all charts installed. E.g:

environments:
- env1
- env2
- env3
- env4

releases:
- name: elasticsearch
  chart: stable/elasticsearch
  installed: {{ eq .Environment.Name "env1" "env4" }}
  values:
  - config/{{`{{ .Release.Name }}`}}/{{`{{ .Environment.Name }}`}}.yaml

- name: nginx-ingress
  chart: stable/nginx-ingress
  installed: {{ eq .Environment.Name "env2" "env3" }}
  values:
  - config/{{`{{ .Release.Name }}`}}/{{`{{ .Environment.Name }}`}}.yaml

This will result in an error if using missingFileHandler: Error
Naturally I do not have values files for nginx-ingress for environments env1 and env4.
Nor do I have values files for elasticsearch for environments env2 and env3

But I would still like to use missingFileHandler: Error

TL;DR, could missingFileHandler: Error only check if files exist for releases that will be installed? not check for those that are not intended to be installed (or intended to be deleted) ?

Many thanks!

bug

Most helpful comment

The fix is included in v0.51.1 released just now

All 6 comments

Hey! Thanks for writing up the detailed explanation
of your issue.
This seems like a valid enhancement to helmfile.
Would you mind submitting a PR?
2019年3月30日(土) 6:43 Naseem notifications@github.com:

Hello,

I would like to use missingFileHandler: Error,

However I have various environments declared, but not all environments
have all charts installed. E.g:

environments:

  • env1
  • env2
  • env3
  • env4

releases:

  • name: elasticsearch
    chart: stable/elasticsearch
    installed: {{ eq .Environment.Name "env1" "env4" }}
    values:

    • config/{{{{ .Release.Name }}}}/{{{{ .Environment.Name }}}}.yaml

  • name: nginx-ingress
    chart: stable/nginx-ingress
    installed: {{ eq .Environment.Name "env2" "env3" }}
    values:

    • config/{{{{ .Release.Name }}}}/{{{{ .Environment.Name }}}}.yaml

Naturally I do not have values files for nginx-ingress for environments
env1 and env4.
Nor do I have values files for elasticsearch for environments env2 and
env3

But I would still like to use missingFileHandler: Error

TL;DR, could missingFileHandler: Error only check if files exist for
releases that will be installed? not check for those that are not intended
to be installed (or intended to be deleted) ?

Many thanks!

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/roboll/helmfile/issues/519, or mute the thread
https://github.com/notifications/unsubscribe-auth/AABV-awmXrWPGbm8IoTRgwmDNtyQDhMmks5vboj-gaJpZM4cTSse
.

Hi @mumoshu thanks for confirming that this is a valid enhancement!
I'll have a Go at it (pun intended)

I've noticed that the "bad" behaviour is only when using sync,charts, lint, template, status (error if file missing even for release which should not be installed in particular env), but with apply, diff the behaviour is correct (only errors out if release that should be installed in particular env is missing the values file)

@naseemkullah Thanks! Your additional report was helpful that I managed to fix it in #526.

Thank you @mumoshu !

The fix is included in v0.51.1 released just now

Was this page helpful?
0 / 5 - 0 ratings