0Pricing
DevOps Bootcamp · レッスン

fail とカスタム検証ガード

明確で対処可能なエラーによりレンダリングを停止します。

「fail とカスタム検証ガード」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

不正な入力を防ぐ

チャートでは、意味のない設定を早い段階で拒否する必要があります。優れたテンプレートなら、レンダリングを停止し、何が問題だったのかをユーザーに正確に伝えられます。

failで停止する

fail関数はテンプレートのレンダリングを直ちに停止し、指定したメッセージをエラーとして表示します。

{{ fail "service.port must be set" }}

ifでガードする

failをifで囲むと、値がない場合や無効な場合だけ実行できます。有効なインストールには影響しません。

{{ if not .Values.image }}{{ fail "image is required" }}{{ end }}

単一の値にはrequired

必須の値が1つだけの場合はrequiredがより簡単です。値が空でなければその値を返し、空であれば指定したメッセージで失敗します。

{{ required "image.tag is required" .Values.image.tag }}

failとrequiredの違い

インラインで単一の値を必須にするにはrequiredを使い、複数の条件を確認する場合や独自のロジックが必要な場合はfailを使ってください。

列挙値を検証する

値が許可された集合のいずれかであることを検証できます。ユーザーがunsupportedな値を選んだ場合は、明確なエラーを出します。

{{ if not (has .Values.tier (list "free" "pro")) }}{{ fail "tier must be free or pro" }}{{ end }}

役立つメッセージを書く

失敗メッセージは助言として書いてください。値と修正方法を示せば、インストールがなぜstoppedしたのかをユーザーが推測する必要はありません。

組み合わせを確認する

2つのフィールドに関係するルールもあります。ある機能が有効なのに、それが依存する関連値がない場合、guardで失敗させられます。

{{ if and .Values.tls.enabled (not .Values.tls.secret) }}{{ fail "tls.secret needed when tls.enabled" }}{{ end }}

ガードを一元化する

検証を_helpers.tpl内の名前付きテンプレートにまとめると、チェックを1か所に集約でき、各リソースファイルから切り離せます。

{{- include "mychart.validate" . -}}

ガードをテストする

不正なvaluesを指定してhelm templateを実行し、クラスタに到達する前に各ガードが明確なメッセージで動作することを確認してください。

Schemaでもチェックする

型や範囲のルールには、values.schema.jsonファイルを使うとfailを補完できます。テンプレートが実行される前に不正な入力を拒否できます。

クイックチェック

検証ヘルパーを確認しましょう。

まとめ

不正なインストールを早期に停止する方法を学びました。カスタムの複数条件ガードにはfailを、単一の必須値にはrequiredを使います。🎉

よくある質問

「fail とカスタム検証ガード」レッスンは無料ですか?

はい。「fail とカスタム検証ガード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「fail とカスタム検証ガード」で何を学びますか?

明確で対処可能なエラーによりレンダリングを停止します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「fail とカスタム検証ガード」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. mergeOverwrite と dict による Deep Merge
  2. tpl:Values の文字列をレンダリングする
  3. range を使った .Files.Glob のファイルループ
  4. fail とカスタム検証ガード
← DevOps Bootcampに戻る