よくある YAML インデントの落とし穴
レンダリング結果を壊すエラーを回避します。
「よくある YAML インデントの落とし穴」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
インデントは構造そのもの
YAML では、スペースは飾りではありません。インデントだけでどの要素がどの要素の下にネストされるかが決まるため、スペースを 1 つ間違えるだけでマニフェスト全体の構造が変わることがあります。😬
テンプレートではさらに難しくなる
アクションが値やブロックを挿入すると、そのテキストはアクションが置かれている列から始まります。位置を見誤ると、レンダリングされた YAML が壊れます。
タブは絶対に使わない
YAML ではインデントに タブを使用できません。紛れ込んだタブは分かりにくいパースエラーを引き起こすため、エディターがスペースを挿入するように設定してください。
ブロックを挿入する
複数行の値をツリーに挿入しても、自動的には位置が揃いません。indent 関数を使って、行頭に適切なスペースを追加する必要があります。
{{ .Values.config | indent 4 }}indent はスペース数を指定する
indent の後ろに指定する数値は、値のすべての行の先頭に付加するスペースの数です。ブロックを配置する深さに合わせてください。
改行の落とし穴
よくあるバグは、indent が先頭の改行を追加しないことです。そのため、1 行目が YAML のキーに連結してしまいます。これにより、ドキュメントが気付かないうちに壊れます。
data:
{{ .Values.config | indent 2 }}nindent で解決する
代わりに、ほとんどのチャートでは nindent を使用します。最初に改行を追加してからインデントするため、ブロックを確実に独立した行から始められます。
data: {{ .Values.config | nindent 2 }}アクションの列に注意する
ソース内で {{ の前に置くスペースは、アクションが出力する行に影響します。制御用アクションは、出力が配置される深さに置いてください。
リストにはダッシュが必要
テンプレート化された値がリストになる場合、各項目には正しいインデントのハイフンが必要です。通常は toYaml と nindent の組み合わせで、これをきれいに処理できます。
env:
{{ toYaml .Values.env | nindent 2 }}レンダリングして確認する
インデントのバグはソース内では見えませんが、出力にははっきり現れます。チャートをレンダリングし、生の YAML を確認すると、ずれたブロックをすばやく見つけられます。👀
helm template ./mychartlint に任せる
チャートをクラスターにインストールする前に、helm lint を実行して YAML やインデントに関する多くの問題を検出してください。
helm lint ./mychartクイックチェック
挿入したブロックが、その上にある YAML キーに連結し続けています。
まとめ
タブを使わず、きれいなブロックには nindent を使用し、YAML を検証するために必ずレンダリングまたは lint を実行するという、典型的な落とし穴を回避できるようになりました。🎯
よくある質問
「よくある YAML インデントの落とし穴」レッスンは無料ですか?
はい。「よくある YAML インデントの落とし穴」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「よくある YAML インデントの落とし穴」で何を学びますか?
レンダリング結果を壊すエラーを回避します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「よくある YAML インデントの落とし穴」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 二重中括弧による Action 構文
- ダッシュ記号で空白を削除する
- Template のコメントと引用符
- よくある YAML インデントの落とし穴