At work, we’re using a Kubernetes cluster with a lot of custom resources. These custom resources allows us to configure access to databases, queues, and more.
I’ve written a small python script to extract the definitions from the default
kubectl output. This produces a set of files that IntelliJ will happily ingest.
$ python get_crds.py -h usage: get_crds.py [-h] destination Extract Kubernetes Custom Resource Definitions (CRDs) from the raw output of `kubectl get crds -o yaml` for use by IntelliJ Ultimate. positional arguments: destination Directory to put the CRDs in optional arguments: -h, --help show this help message and exit $ kubectl get crds -o yaml | python get_crds.py tmp/crds Finished creating CRDs. Now go to Preferences -> Languages & Frameworks -> Kubernetes and add all the CRDs in tmp/crds. $
Once you’ve done this, you’ll find that syntax highlighting/linting/godo definition/etc. works for all your Kubernetes templates, including those using resources with custom definitions.
unfortunately, this requires the JetBrains Kubernetes plugin, which is not available for the free community edition of IntelliJ. ↩︎