Features

IntelliJ IDEA 2018.3: Helm support

Not so long ago, IntelliJ IDEA 2018.1 Ultimate Edition introduced some initial support for Kubernetes through the brand new Kubernetes plugin. The forthcoming IntelliJ IDEA 2018.3 takes it even further and now the Kubernetes plugin gets Helm support!

In the blog post covering the first EAP build of IntelliJ IDEA 2018.3, we only briefly mentioned the availability of Helm support in the Kubernetes plugin. Now the time has come to dive into the details.

Please bear in mind that you need to install not only the Kubernetes plugin v2018.3, but also the Go template plugin. After this is done, the IDE will correctly resolve the Helm resource template files and provide you with our well-known editing support: code completion, rename refactoring, and, of course, inspections and quick-fixes.

k8sCompletion

All the inspections that work for Kubernetes files will now also work for Helm resource template files in the editor, except for the places where Go template expressions are used.

k8sInspectionKey

It seems that even though there are a dozen inspections working for Helm resource files, it is still quite easy to make a mistake in Go Template expressions. But what if you could actually preview the result of your Helm template? It may be quite handy. Choose the new Kubernetes | Helm Template action from the context menu, and the IDE will preview the result of the Helm template rendering in the diff.

k8sHelmPreviewTemplate

As mentioned above, the editor inspections don’t warn you about possible errors in Go template expressions. But we’ve got you covered here too – use the new Helm Template action, and the IDE will warn you about the errors in the diff viewer.

k8sInspectionInvalidLabel

Another feature that you can benefit from is a new Helm Dependency Update. This new action downloads the external tgz dependencies (or updates the existing one) and displays them in the project tree.

By the way, if there is no requirements.lock available, this action creates one for you (provided of course that there is a requirements.yaml).

k8sHelmDependencyUpdate

You can assign shortcuts for the new Helm Dependency Update and Helm Template action in the Preferences / Settings | Keymap | Plug-ins | Kubernetes.

k8sHelmAssignShortcut

Quick documentation (F1 on macOS / Ctrl-Q on Windows and Linux) is, of course, now available for Helm resource files as well.

k8sHelmQuickDoc

Oh, and you can now use the gutter icons to navigate between a label definition and a label selector, just note that if it’s a Helm specific file then it navigates inside a chart with it’s sub-charts, and if it’s a Kubernetes file it navigates outside of the charts.

Besides, there are new gutter icons in values.yaml files that you can use to navigate to overridden/overriding values.

k8sHelmNavigationOverridden

But more importantly, you can navigate from a values usage to its declaration in the chart’s values.yaml file.

k8sNavigation

That’s it! We are working hard to add even more capabilities to the Kubernetes plugin. We plan to add support for the runtime, and Openshift and Istio support is also among some of our priorities. We want to make sure that our support will meet your needs, so please share your feature requests and use-case scenarios with us in our issue tracker. We’d love to hear what you think!

Happy Developing!

image description