(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubernetes】found a tab caharacter that violates indentationというYAMLのエラー

スポンサーリンク

事象

Kubernetesクラスターに対し、YAMLファイルを適用すると以下のエラーで失敗する。

$ kubectl apply -f busybox.yaml
error: error parsing busybox.yaml: error conberting YAML to JSON: yaml: line 22; found a  tab caharacter that violates indentation
環境情報
  • Kubernetes 1.23

原因/対応策

表示上は列が揃っているが

    -image: busybox
      imagePullPolicy: Never

制御文字含めて確認すると(viでset listを行うと確認可能)異なる制御文字にて行が管理されている。

    -image: busybox$
^IimagePullPolicy: Never$

具体的には上記の場合、上の行はスペースで下の行はインデントを利用している。

インデントを削除しスペースで詰めれば

# kubectl apply -f busybox.yaml
deployment.apps/busybox-dep created

正常に起動できた。

以下、補足です。

補足

YAMLファイルに追記する際、列合わせにタブキーを使うと冒頭に記載したエラーとなります。よって同エラーが出て場合は、制御文字の確認を行うことをお勧めします。

尚、viで編集する場合はset list状態で制御キーを見える化することができ、不要になればset nolistで解除できます。

以上、ご参考になれば幸いです。