0Pricing
DevOps Bootcamp · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. helm lint による静的チェック
  2. helm template で出力を検証する
  3. helm test Case を作成する
  4. values.schema.json による Schema 検証
← DevOps Bootcampに戻る