KubernetesのYAMLマニフェストでフォーマッターを利用したい
はじめに
KubernetesのYAML形式のマニフェストをVSCodeで記述する際に、フォーマッターを利用できるように設定していきたいと思います。
結論として、現状では設定したい内容が実現できなかったので、フォーマッターの利用は諦めています。
YAML
YAMLファイルのフォーマッターを利用する場合は、下記の拡張が利用可能です。Kubernetesのシンタックスもサポートしているので便利です。
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
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,
そのうち、機能が追加されたら利用しようかと思います。
参考
- YAML - Visual Studio Marketplace
- Add Config for Array Indentation Spacing · Issue #172 · redhat-developer/vscode-yaml
- Fix added configuration setting for array indentation by msivasubramaniaan · Pull Request #632 · redhat-developer/vscode-yaml
- implemented the squeceItem identation based on the sequenceItemIndent… by msivasubramaniaan · Pull Request #574 · redhat-developer/yaml-language-server
- [YAML] Use do-not-indent style for Kubernetes resources by tumido · Pull Request #10927 · prettier/prettier