KubernetesUltimate
Required plugin: Kubernetes
Kubernetes is a container orchestration engine for the deployment, scaling, and management of containerized applications. Install and enable the Kubernetes plugin for IntelliJ IDEA Ultimate to add the following features for managing your Kubernetes cluster:
Coding assistance for Kubernetes resource configuration files.
Coding assistance for Helm charts and templates.
Validation of custom resources with custom resource definition (CRD) specifications.
Coding assistance for Kustomize files: field and local file path completion, quick documentation, and navigation between Kustomize files and patches. The list of related Kustomize files appears in the editor at the top of the open Kustomize patch.
Interaction with the cluster from IntelliJ IDEA: use the Services tool window to see all resources of the Kubernetes cluster in the current context, jump to relevant resource definitions, view logs for containers running on pods, and much more.
note
The Kubernetes plugin is not bundled with IntelliJ IDEA, and should be installed from the JetBrains plugin repository. For more information, see Manage plugins.
Resource configuration files
The Kubernetes plugin supports Kubernetes API starting from version 1.5. It provides rich support for resource configuration files in YAML, and only basic support for the JSON format.
IntelliJ IDEA recognizes Kubernetes resource configuration files using the following mandatory fields:
apiVersion
: identifies the versioned schema of the object representationkind
: identifies the object kind (for example,Service
,Pod
,Deployment
, and so on)
If both of the previous fields are present in a YAML or JSON file, IntelliJ IDEA will mark the file with the corresponding Kubernetes icon and enable all available features:
![https://resources.jetbrains.com/help/img/idea/2021.1/KubernetesRecognizeYAML.png](https://resources.jetbrains.com/help/img/idea/2021.1/KubernetesRecognizeYAML.png)
For YAML files, you can also use predefined Live Templates to create the necessary type of configuration:
kcm
: Kubernetes ConfigMapkdep
: Kubernetes Deploymentkpod
: Kubernetes Podkres
: Kubernetes Generic Resourcekser
: Kubernetes Service
![https://resources.jetbrains.com/help/img/idea/2021.1/KubernetesLiveTemplateKdep.png](https://resources.jetbrains.com/help/img/idea/2021.1/KubernetesLiveTemplateKdep.png)
tip
To see all available live templates for Kubernetes resource configuration files and create new ones, open the Settings/Preferences dialog Ctrl+Alt+S, select Editor | Live Templates, and expand the Kubernetes group in the list.
Configure the Kubernetes API version
IntelliJ IDEA provides completion for configuration key values, navigation to relevant selectors and definitions via gutter icons, specialized inspections that check for deprecated values and required keys, and other assistance features. These depend on the version of the API you are using. By default, IntelliJ IDEA sets it to the latest version. However, if your resources use an earlier version of the API, you can change it.
In the Settings/Preferences dialog Ctrl+Alt+S, select Languages & Frameworks | Kubernetes.
Change the Kubernetes API version and Kustomize version options as necessary.
Helm support
Helm is a tool for managing Kubernetes applications. Helm charts are packages of pre-configured resource definitions that you run inside a Kubernetes cluster. A chart contains a description of the package Chart.yaml and one or more templates used to generate Kubernetes manifest files.
note
The Go Template plugin is required for Helm template syntax support.
Coding assistance for Helm charts and templates includes code completion, refactorings, inspections, quick fixes, and quick documentation. Also, it is possible to use gutter icons for navigating between label definitions and label selectors, and between overridden and overriding values. Code completion includes values of dependencies from the specified repository (by default, from Helm Hub ).
By default, Go template directives are rendered as the actual values in Helm templates. You can click the value to expand and show the directive. This functionality is implemented using code folding. Press Ctrl+NumPad + and Ctrl+NumPad - to toggle between values and directives.
Custom resource definitions support
If your Kubernetes cluster is extended with custom resources, IntelliJ IDEA can validate them with custom resource definition (CRD) specifcations.
Specify the path to CRD specifications
In the Settings/Preferences dialog Ctrl+Alt+S, select Languages & Frameworks | Kubernetes.
Click
and either select a local CRD file or specify a URL. Then click OK.
Use and
to rearrange the list of CRD files. This defines the priority for conflicting definitions: the lowest one is used if it is defined in more than one file.
By default, CRDs are applied to the current project only. Change the Scope: option to IDE
if you want a certain CRD to be available for any project that you open with this IDE instance.
note
When you apply changes, newly added CRDs from URLs are automatically downloaded. Other modified CRDs will be downloaded only as the model reloads, which happens whenever you open the project or change other Kubernetes settings (for example, the order of CRDs) and it has been more than three hours since the last model reload. If it has been less than three hours since the last model reload, you can force a reload on the current model using the Re-read current configuration button.
To load the CRD from the running Kubernetes cluster, enable Use API schema from the active cluster if available.
You can view CRDs for the current cluster, including all their applied resources, under the Kubernetes node of the Services tool window.
The Kubernetes plugin supports CRD files of the following types:
CRD validation restrictions
The following OpenAPI v3 schema features are not supported:
multipleOf
maximum
exclusiveMaximum
minimum
exclusiveMinimum
maxLength
minLength
pattern
maxItems
minItems
uniqueItems
maxProperties
minProperties
allOf
oneOf
anyOf
not
format
default
nullable
readOnly
writeOnly
xml
externalDocs
example
deprecated
Productivity tips
If you use the features described here frequently, the following tips may be helpful:
Assign shortcuts
You can assign a keyboard shortcut for Kubernetes actions.
In the Settings/Preferences dialog Ctrl+Alt+S, select Keymap.
Type
kubernetes
in the search field, then double-click an action to set a shortcut for it.
Alternatively, you can use the Find Action dialog Ctrl+Shift+A, type kubernetes
, select the necessary action, and press Alt+Enter.
Configure code folding
By default, IntelliJ IDEA uses code folding to render value references in Helm templates and definitions in Kubernetes configuration files as the actual values. You can click the value to expand it or press Ctrl+NumPad + and Ctrl+NumPad - to toggle folding. If you want to see the references and defintions expanded by default, do the following:
In the Settings/Preferences dialog Ctrl+Alt+S, select Editor | General | Code Folding.
On the Code Folding page, clear the necessary checkboxes:
- Kubernetes: value references in Helm templates
- Kubernetes: EnvVar definitions in YAML files
- Kubernetes: ExecAction definitions in YAML files
Use multiple Kubernetes configuration files
IntelliJ IDEA detects the default
kubeconfig
file. To use a different configuration file, open Settings/Preferences, select Build, Execution, Deployment | Kubernetes, and set the necessary path. If you want to use different configuration files in different projects, select Set this path only for the current project.