KubernetesのYAMLマニフェストでフォーマッターを利用したい

2022.05.01
2024.03.24
Kubernetes
VSCodeフォーマッター

はじめに

KubernetesのYAML形式のマニフェストをVSCodeで記述する際に、フォーマッターを利用できるように設定していきたいと思います。

結論として、現状では設定したい内容が実現できなかったので、フォーマッターの利用は諦めています。

YAML

YAMLファイルのフォーマッターを利用する場合は、下記の拡張が利用可能です。Kubernetesのシンタックスもサポートしているので便利です。

YAML - Visual Studio Marketplace

YAML - Visual Studio Marketplace

Extension for Visual Studio Code - YAML Language Support by Red Hat, with built-in Kubernetes syntax support

他にもオートコンプリートやバリデーションが可能になります。

フォーマッターの設定

フォーマッターの設定はsettings.jsonに下記を追加すれば利用できます。

1  "[yaml]": {
2    "editor.defaultFormatter": "redhat.vscode-yaml",
3  },
4  "yaml.format.enable": true,

上記の設定をしなくても利用可能ですが、別のファイル形式でフォーマッターを使っている場合などはYAMLファイルのフォーマッターの指定をしていた方が安心かと思います。

ハッシュの中の配列のインデントについて

これでYAMLのフォーマッターは利用できるのですが、Kubernetesの公式ドキュメントでの書き方では、下記のようにハッシュの中の配列を記述する際にインデントしないようにしています。

1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  name: nginx-deployment
5  labels:
6    app: nginx
7spec:
8  replicas: 3
9  selector:
10    matchLabels:
11      app: nginx
12  template:
13    metadata:
14      labels:
15        app: nginx
16    spec:
17      containers:
18      - name: nginx # インデントされていない
19        image: nginx:1.14.2
20        ports:
21        - containerPort: 80 # インデントされていない

しかし、下記のissueでも議論されていますが、現状(2022/5/1現在)ではフォーマッターがインデントしてしまいます。

Add Config for Array Indentation Spacing · Issue #172 · redhat-developer/vscode-yaml

Add Config for Array Indentation Spacing · Issue #172 · redhat-developer/vscode-yaml

I'm working with Jekyll for GitHub Pages, which uses the Ruby gem for parsing YAML. This gem prefers this spacing in Arrays: --- simple_val: Testing 1 object_val: sub_object_val: Testing 2 array_va...

PRまでは作成されているようですが、そこで更新が止まっているようです。

結局...

結局、インデントしたくなかったためフォーマッターは無効化することにしました。

1  "yaml.format.enable": false,

そのうち、機能が追加されたら利用しようかと思います。

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee