概要
Kubernetesはv1.35で、YAMLの厳格なサブセットである新方言「KYAML」をベータ機能として標準有効化した。v1.34でアルファ機能として導入されたKYAMLは、既存のYAMLパーサーとの互換性を保ちながら、マニフェスト記述時に発生しがちな構文のあいまいさを排除することを狙う。背景には、Helm、GitOps、Infrastructure as Code、そしてAIコーディングエージェントなどによってKubernetesの設定ファイルがますます自動生成・自動操作されるようになっているという事情があり、人間によるレビューよりも自動システムによるエラー検出のしやすさが重視されつつある流れがある。
KYAMLの技術仕様
KYAMLはオブジェクトを{}、配列を[]で表記し、文字列値は二重引用符で囲むことを求める。コメントや末尾のカンマは保持されるため、可読性や利便性は損なわれない。従来のブロック形式のYAMLとは見た目が異なり、JSONに近い構造を保ちながらも、仕様上は有効なYAMLとして機能する点が特徴だ。これにより、インデントの深さに構造が依存する従来のYAMLの脆弱性や、引用符を省略した値が意図しない型に解釈されてしまう典型的なトラブルを防ぐ設計になっている。特にテンプレートシステムによって生成・加工されるマニフェストでは、こうした型変換の事故が起きやすく、KYAMLはこの種の問題を構文レベルで抑え込む。
ツール対応と今後の見通し
kubectlは新たに-o kyamlという出力形式をサポートし、KubernetesエコシステムのyamlfmtツールやGoogleのyamlfmtもKYAMLに対応する。KYAMLは仕様上有効なYAMLであるため、KYAML形式で書かれたマニフェストは旧バージョンのkubectlでも問題なく読み込める点も導入のハードルを下げている。GitOpsパイプラインやAIエージェントによる自動生成マニフェストが増える中、型のあいまいさに起因する意図しない設定ミスのリスクを構文段階で減らせることから、今後はテンプレート生成や自動化ツールを中心に採用が進むと見られる。