通过Idea进行Kubernetes YAML开发

即将推出的IntelliJ IDEA 2018.1 Ultimate Edition通过全新的Kubernetes插件为Kubernetes引入了初步支持。新插件支持从v1.5到最近发布的v1.9 的Kubernetes资源文件。

Kubernetes的IntelliJ IDEA增强功能包括:代码完成,检查,Kubernetes资源文件的快速修复,装订线中的图标以便于导航,弹出文档和实时模板。继续阅读以获取更多详细信息和屏幕截图

ij_ku1

请注意,Kubernetes插件未捆绑,因此在使用此新功能之前,您需要安装插件。转到首选项| 插件| Kubernetes插件,或从网站下载插件。

新的Kubernetes插件兼容所有付费的JetBrains IDE:PhpStorm,WebStorm,PyCharm Professional,RubyMine,AppCode,CLion,GoLand和DataGrip。

一旦Kubernetes安装插件,您可以创建和编辑YAMLJSON Kubernetes资源在IntelliJ IDEA的文件。新插件将查找文件中是否存在apiVersionkind字段,如果存在这些字段,则会将此类文件视为Kubernetes资源文件。

使用Kubernetes资源文件可能具有挑战性,因为您需要包含所有必填字段,这些字段因应用的KubernetesAPI版本和种类类型而异。这意味着在创建Kubernetes资源文件时,必须经常查阅Kubernetes文档。为了让您更容易使用Kubernetes,新插件有一整套改进。

首先,Kubernetes插件有一个内置的实时模板,可以让您快速创建所需的YAML Kubernetes资源文件类型:

2018-03-02 14_52_26

新插件现在包含几个预定义的Kubernetes模板,您可以通过键入其缩写来调用必要的Live Template

如果要添加自己的实时模板或自定义现有模板,请转到“首选项”| 实时模板| Kubernetes。

代码完成现在适用于YAML Kubernetes资源文件。Kubernetes插件提供了您可以在资源中使用的正确值。

KubCompletion(1)

为了帮助您真正快速为Kubernetes 创建所需的YAML定义文件,请开始键入所需的密钥并调用Smart Completion。新插件将自动完成以下所有级别的所有必需键。

SmartDeep

对于YAML Kubernetes资源文件,该插件提供了在标签定义和标签选择器之间导航的功能。使用装订线中的图标。

image10

如果标签与键和值的直接匹配,您还可以从标签选择器导航并跳转到编辑器内的标签定义。

image15

当您重命名YAML Kubernetes文件中的键或值时,该插件还将重命名它们的所有用法。

image8

每当您选择已弃用的Kubernetes属性时,Kubernetes插件都会提醒您仅适用于YAML文件)。

image12

除此之外,如果您尝试使用不适用于具有应用的apiVersionkind的指定元素的属性,您将收到YAML文件的警告

image7

该插件突出显示YAML Kubernetes资源定义文件中缺少键的元素,并提供快速修复以添加所需的键

image13

此领域的另一个增强功能是IntelliJ IDEA现在会警告您冗余密钥。使用提供的快速修复程序删除YAML Kubernetes资源文件中的冗余密钥。

我们的新插件还检测YAML Kubernetes资源文件中的不可编辑键,并在编辑器中突出显示它们。请注意,通过方便的快速修复,可以轻松地从当前YAML 文件中删除所有此类只读密钥。

图像5

IDE预览YAML Kubernetes文件中折叠区域的重要信息。

2018-03-02 16_52_37

您还可以通过按^ J(macOS)或Ctrl + QWindowsLinux)调用YAMLKubernetes资源文件中的任何键的文档。单击快速文档查找中的超链接以导航到更详细的信息。

image14

支持JSON Kubernetes资源文件

虽然不是JSON格式建议Kubernetes资源文件时,它仍然被Kubernetes支持。新插件基于JSON模式功能为JSON Kubernetes资源文件提供了一些有限的支持。

目前,只有代码完成可用于JSON Kubernetes资源文件。

图像2

新插件根据JSON模式验证当前键,并在使用不正确的属性或值时提醒您。

image16

此外,插件会突出显示缺少必需属性的元素,然后建议您应添加的相应属性。

此搜索

JSON Kubernetes文件中也检测到重复的属性。

图像4

快速查找文档也可用于JSON Kubernetes资源文件。

图像3