IntelliJ IDEAのKubernetes Pluginが便利だったので紹介する
はじめに
KubernetesのManifestはIntelliJ IDEAで書くことが多く、JetBrainsから提供されているKubernetes Pluginを使っている。
今まではちょっと補完されればいいかな程度で使っていたのだが、調べてみるといろいろ機能があって便利なことがわかったのでそれを共有したい。
環境
- Ubuntu 18.04
- IntelliJ IDEA 2020.1.1(Ultimate Edition)
- Kubernetes Plugin 201.7223.68
Kubernetes Pluginでできること
YAMLを書く
まずはYAMLを書くところから。
(JSONでもある程度は対応しているが、YAMLで書くことがほとんどだと思うので割愛)
Vanilla編
パラメータを補完する
下記はKubernetes公式ドキュメントから引っ張ってきたDeploymentの例。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
ここにlivenessProbe
の設定を加えてみる。
カーソルを合わせた状態でctl+space
を押すと、設定可能なパラメータが表示されるので適宜選んでいけばよい。
ライブテンプレートでひな形を作る
Live Template機能でDeploymentを作ってみる。
Pluginからは下記4つのResource Live Templateが提供されている。
必要に応じてカスタマイズできるので、自分がよく使う設定などをいれておくのも◎。
- kcm(ConfigMap)
- kdep(Deployment)
- kpod(Pod)
- kser(Service)
- kres(Generic Resource)
ドキュメントを見る
カーソルを合わせることでQuick Documentが表示される。
CRDのパラメータを補完する
CRDについては、事前に登録しておくことで補完が効くようになる。
今回は例としてIstioのVirtualServiceでやってみる。
まずは登録するCRD自体を取得。
今回はgithubにあるVirtualServiceのCRDをコピペしてLocalに保存しておいた。
そしてCRDの登録。
登録後はDeploymentの時と同じように補完が効くようになる。
Helm編
(自分があまりHelmを使いこなせていないのでさっくり行きます)
ひな形を作る
ディレクトリを指定して右クリック
→New
→Helm Chart
を選択すると諸々作成。
Templateを展開する
Template Fileを指定して右クリック
→Kubernetes
→Helm Template
を選択すると、Templateの状態とRenderingされた状態とが同時に表示される。かっこいい。
Lintをかける
ディレクトリを指定して右クリック
→Kubernetes
→Helm Lint
を選択するとChartのチェック。
helm lint helloWorld ==> Linting helloWorld [INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
アイコンつけてね、とのこと。
依存関係を解決する
requirements.yaml
があるディレクトリを指定して右クリック
→Kubernetes
→Helm Dependency Update
を選択すると依存ChartをUpdate。
Kustomize編
(Kustomize関連の機能は自分が調べたところだとあまり多くない印象。ほかにあれば教えてください)
ファイル名を補完する
クラスタを覗く
書くときの機能は何となく知っていたのだが、実はKubernetesクラスタにつなげてクラスタの状態も確認できる。
Service Tool Window(Alt
+8
)でKubernetesクラスタの状態をみてみよう。
Resourceを見る
Workloads ResourceやNetowork Resourceなどが表示される。
個別の項目をクリックすると、下記のような情報が表示される。
個別の項目をダブルクリックすると、YAMLとして表示される。 これが結構便利。
コンテナのログを見る
個別のPodを右クリックし、Show Log
を選択すると、コンテナのログが表示される。
クラスタに適用する
左上の緑▶からapplyできる。(右クリックからでも可)
参考
所感
YAMLの補完はもちろんのこと、個人的にはKubernetesクラスタ上のResourceのYAMLがすぐに見られるのが結構うれしい。
今まではkubectl get pod <pod> -o yaml | vim -
みたいなことを毎回やってた。
もともとPHPを書いたりJavaScriptと戯れたりJavaを眺めたりといろいろな言語を行ったり来たりしていたのでIntellJ IDEA Ultimateを購入したのだがやっぱ便利だ。
みんなIntelliJ IDEA Ultimate買うと捗るよ。