-
Notifications
You must be signed in to change notification settings - Fork 567
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
Installing a helm release from single K8s manifest YAML file hosted somewhere (e.g. OperatorHub) #1720
Comments
@kevin-lindsay-1 do you mean handling operators packaged in the way OLM framework can handle them? (i.e providing the OLM required staff: CSV manifest, etc.) |
I would basically just run a It technically wouldn't invoke helm, but for certain charts an operator being installed is assumed. Since helmfile's overall purpose is in my opinion to improve the DX of helm by adding useful features, I would say that adding operators would also be useful. If there's a good generic way to wrap that operator into a chart, perhaps that would be ideal, but for something like an external chart, being able to say that it depends on an operator would be necessary. Part of the reason why I like helmfile so much is because it centralizes things into effectively one command, so that local development and CI can use the same helmfile, with near-zero additional steps. It might be necessary to either state that an operator should be torn down with the helmfile, track dependencies (as in, track which releases need which operators, which seems a bit much), or bundle the operator into the chart in some way. I have no real preference on implementation, only that it would be a really nice feature for helmfile to be able to define the operator, as well, in order to keep a single source of truth as much as possible. |
@kevin-lindsay-1 Hey! Honestly speaking I have no experience with operatorhub. Can I safely assume that every operator distributed by operatorhub can be installed with a single YAML file located at If so, I think this is a good chance to enhance something we already have- our go-git integration that is already serving you to download git-hosted helm chart or a directory of manifests/kustomize, and our In nutshell Helmfile is only able to turn a directory of manifests/kustomize hosted in a git repository into a temp chart today:
In other words, it's unable to handle a single remote YAML file. It's also unable to handle YAML files in a standard HTTP(s) server. Probably extending it to allow both enables us to write something like:
WDYT? |
@mumoshu Yes, as far as I am aware it's just a YAML file, and that's the only procedure via OperatorHub. Looking at how to create, preview, etc. on their website I have found no indication that this pattern would ever use anything other than a single YAML. During my digging, I found a fairly in-depth reference I like the simple syntax, however I'm not partial to the usage of the word |
@kevin-lindsay-1 My quibble is that What if it was A secret of Helmfile.yaml is that it already supports So, adding another alias |
@mumoshu Manifest or resource or something works for me, as long as the "needs" behavior works as intended. From a timing standpoint, I'm not sure if adding an operator manifest immediately registers the CRDs, so it might need some kind of wait condition. |
@kevin-lindsay-1 Hey! Thanks for confirming.
Im not sure either. Perhaps there're potentially three kinds of operators, one that includes CRD in their manifest, other that automatically installs CRDs on startup, and another that requires you to install CRDs beforehand? Helmfile handles the first kind without issues, except that you'll occasionally required to write Helmfile should also handle the third kind gracefully with |
// Linking #1757 as a related issue |
Well, I'm not yet sure if this is a showstopper. But I'd happily review it if you contribute the feature outlined above by myself. |
With the rise of https://operatorhub.io/, it would be really nice to be able to declaratively state which operators are needed for a given chart.
The text was updated successfully, but these errors were encountered: