values.schema.json による Schema 検証
レンダリング前に無効な Values を拒否します。
「values.schema.json による Schema 検証」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
Valuesを保護する
ユーザーはチャートに任意のvaluesを渡せます。values.schema.jsonファイルを使うと、テンプレートを1つもレンダリングする前に不正な入力を拒否できます。🚧
JSON Schemaを使用する
このファイルは標準のJSON Schema形式に従います。valuesが満たすべき構造、型、必須フィールドを記述します。
配置場所
values.schema.jsonはチャートのルートに、values.yamlのすぐ隣に配置します。追加のフラグは不要で、Helmが自動的に読み込みます。
最小限のSchema
すべてのスキーマは、typeがobjectであり、チャートが受け付ける各valueを記述するpropertiesブロックを持つところから始まります。
{
"type": "object",
"properties": {}
}フィールドに型を指定する
properties内で各フィールドのtypeを宣言します。たとえばレプリカ数にはintegerを指定できるため、文字列は拒否されます。
"replicaCount": { "type": "integer" }必須フィールドを指定する
required配列には、存在しなければならないフィールドを列挙します。1つでも省略すると、Helmはチャートのレンダリングを拒否します。
"required": ["image"]値に制約を設ける
minimumのような下限を追加すると、replicaCountが1未満の場合にすぐ不正な値として検出できます。
"replicaCount": { "type": "integer", "minimum": 1 }選択肢を限定する
enumを使うと、ClusterIP、NodePort、LoadBalancerのように、特定の文字列だけを許可できます。
"type": { "enum": ["ClusterIP", "NodePort"] }検証が実行されるタイミング
Helmはinstall、upgrade、template、lintの実行時にスキーマに対して検証するため、不正なvaluesをあらゆる場面でブロックできます。
明確な失敗メッセージ
valuesがスキーマに違反すると、Helmは処理を停止し、どのフィールドが無効なのかを正確に出力します。そのため、修正すべき箇所がすぐにわかります。
Error: values don't meet the specifications of the schema(s)重要な理由
スキーマを使うと、気付かれない設定ミスが早期の明確なエラーになり、本番環境でチャートのユーザーが予期しない問題に遭遇するのを防げます。
理解度チェック
イメージの値がない場合にインストールを拒否するチャートにしたいとします。何を使いますか?
まとめ
values.schema.json が JSON Schema を使ってユーザー入力を検証し、type、required、minimum、enum によって不正な値を早い段階で拒否することを学びました。🎉
よくある質問
「values.schema.json による Schema 検証」レッスンは無料ですか?
はい。「values.schema.json による Schema 検証」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「values.schema.json による Schema 検証」で何を学びますか?
レンダリング前に無効な Values を拒否します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「values.schema.json による Schema 検証」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- helm lint による静的チェック
- helm template で出力を検証する
- helm test Case を作成する
- values.schema.json による Schema 検証