-
Notifications
You must be signed in to change notification settings - Fork 292
feat: Experimental support for Helm 3.0.0-beta.3 #149
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
Conversation
Tested with `helm diff upgrade` only. Changes for other helm-diff sub-commands will be made in coming weeks. Changes: - Migrated from Glide to Go modules as helm-diff was unable to build with Glide due to bunch of missing transitive dependencies probably due to that some projects are not managed by Glide - Auto-detection of the plugin context(helm 2 or 3) - `helm diff upgrade` has been enhanced so that it turns into Helm 3 mode Pre-requisites: - You need to `helm plugin install` with `helm` of 3.0.0-x as the plugin installation directory has been changed from that of helm 2.x. Ref #147
@mumoshu ❤️ I started looking into this yesterday. Will review/test first thing on Monday. |
@databus23 Hey! Thanks for your response I'd appreciate it if you could also take a look into #150 as well. The implementation is similar except that how much changes are made to existing sources, and #150 has a broader feature coverage! |
@databus23 Btw incorporating helm 3 dependencies triples helm-diff binary size: helm 2 ver:
helm 3 ver(build from this PR):
I have no idea how we can avoid this without improving things on helm-side. Initially I thought this should be like around 30M and removing the helm2 support in the future bring it back to the original size. But I now realize that it can be impossible. We' need to import almost everything from helm3 as helm3 does more on client-side, compared to that the dependency was basically API and tiller client only for helm2. Anyways, I just wanted to let you know. |
@mumoshu Thanks again for starting to work on this.
This is an important point I've been thinking about in the past days. I think this poses a deeper problem than the size of the binary. Now with tiller gone, and all the rendering done locally the plugin would need to be compiled against the same version of the I personally would like to avoid the situation where we need to keep up with helm's release cycle. I quite like that this plugin uses an older version of helm and still works with newer versions of helm without the need to rebuild. Currently I see two options that could avoid this for helm3:
I see pros and cons in both approaches. Keeping this a separate plugin allows us to move quicker and add more features and subcommands then if this would be part of the official helm codebase. On the other hand having |
The first option would be simple to implement such that the same code would work for both helm versions. There is only one thing which bothers me. Helm 3 uses now 3-way strategic merge patches and i don't know how this plugin should handle this. Nevertheless if i have some time i will try to implement a PR for the first option. |
@databus23 Good point! I like the first option as the starting point as it seems more feasible and allows users to migrate to helm 3 earlier. In the longer term upstreaming |
If created #151 for the first option. |
Closed in favour of #151 |
Tested with
helm diff upgrade
only. Changes for other helm-diff sub-commands will be made in coming weeks.Changes:
helm diff upgrade
has been enhanced so that it turns into Helm 3 modePre-requisites:
helm plugin install
withhelm
of 3.0.0-x as the plugin installation directory has been changed from that of helm 2.x.