yamlはタブ禁止

単純にkubernetesのnamespaceを作成しようと以下のようにyamlファイルを作成

apiVersion: v1
kind: Namespace
metadata:
  name: test

そしたら以下のエラー

$ kubectl apply -f namespace.yaml --dry-run
error: error parsing namespace.yaml: error converting YAML to JSON: yaml: line 4: found character that cannot start any token

はて?と思って調べてたらyamlってタブがいけないらしい。基本的なことを知ってなかった。

https://magazine.rubyist.net/articles/0009/0009-YAML.html#%E3%82%BF%E3%83%96%E6%96%87%E5%AD%97%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

YAML では、半角空白のかわりにタブ文字を使うことはできません。タブ文字の表示幅は何かの規格で決まっているわけではなく、環境によって異なります (8 文字が多いのはあくまで習慣にすぎません)。そのため、YAML ではタブ文字を使わないようになっています。

ああ、なるほど。ということでvimの設定を変えました。

$ vim ~/.vimrc
set expandtab

以上