-
Notifications
You must be signed in to change notification settings - Fork 568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels should allow excluding chart by default #168
Comments
@amnk Good point. Honestly I'm not very sure but would Also, it doesn't address your concern that |
@mumoshu I hope that is not too much to ask for :) |
@amnk Thanks. Understood :) The last thing I'm considering now is that how we could harmonize the feature with the In nutshell, Possible options:
Any thoughts? @osterman @sstarcher |
@mumoshu I vote for merge of To give it a little bit more details: usually all those But if you want to evaluate them one by one - then the order of config files becomes very important, and it kinda removes some of the determinism. |
@amnk Thanks! I'm trying to understand - what is your expected outcome for the below example?
defaultSelectors:
- tier: app
releases:
- name: frontend-app
# ...
labels:
tier: app
- name: frontend-ci
# ...
releases:
- name: backend-app
# ...
labels:
tier: app
- name: backend-ci
# ... |
@mumoshu both |
I'm against merging helmfiles that are in the If we were to implement a default selector you could put it into each of your |
@sstarcher agreed, I could have put in the different file. But on the side my usecase is simple: replace multiple Helm calls with one helmfile call. And then selectors updating things only when they changed in code. Having several helmfiles complicates things, and sounded quit logical to me. At the same time I have a question as well: how is
this can be easily enhanced with conditionals as well to put timeout for some files. Sorry if the question sounds dumb, and I'm most likely missing something here. |
That's essentially what helmfile is doing for helmfile.d. I would think it would be logically easier to have 2 separate helm files in your case.
If we implemented merging it would remove alot of useful capabilities that we currently have in helmfile. I'm up for other solutions, but I can't think of one atm to make this easier. Unless we added firstclass support for jobs. |
@osterman FYI, you'd be interested in this issue about default selectors. |
@amnk @sstarcher Hey! So how about just adding For the use-case of collocating releases for oneshot jobs and other long running apps in each helmfile.yaml, you may have the below snippet in all the yaml files: defautls:
selectors:
- tier=frontend
- tier=backend And In case "all" the helmfiles under Makes sense? Any comments are welcomed. Thanks. |
So for implementing something like this I think it likely makes sense to support all helmfile specific command line variables and if they are set on the command line they would be overriden. Maybe
|
@mumoshu I like that approach @sstarcher I like your idea as well! :) |
@sstarcher Sounds great. Would you like it if it is configurable per enviroment, too? environments:
prod:
options:
# override the top-level(default) options as you like
# ...
options:
selectors:
- tier=frontend
concurrency: 1
autoApprove: true |
@amnk Missed to mention you :) I appreciate your comment, too! |
I would say until we have a strong usecase for supporting it per environment it likely just make sense to only support it at the top. |
@sstarcher Noted. Thanks for the confirmation 👍 |
As it the selectors are overridable via the
But then the problem is that how we differentiate between
My idea is to rename |
I would like to know if selector can be regex? |
Nope. |
Is there any current way to do this? We are wanting to implement our long running DB migrations are HelmChart/jobs, but we also want to prevent someone from being able to run them by accident. Moving the jobs into their own helmfile would be fine, but would still need a way to force passing something on the CLI before it runs. Even being able to set them to condition: false, and overriding that on the command line would work.
even something like that would work, as long as |
Signed-off-by: yxxhero <aiopsclub@163.com>
This is probably a feature request.
Labels in current form allow a nice separation of charts, but they do not change the default
helmfile sync
behavior, when all charts are executed. For example, if we follow approach described in https://github.com/roboll/helmfile/tree/master/examples#managing-oneshot-jobs-with-helmfile, the usualhelmfile sync
would execute everything, while it might be natural only regular charts without that one time job.Would it be possible to allow exclusion of some chart based on labels, or all pipelines should just included explicit
--selectors
?The text was updated successfully, but these errors were encountered: