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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- mergeOverwrite と dict による Deep Merge
- tpl:Values の文字列をレンダリングする
- range を使った .Files.Glob のファイルループ
- fail とカスタム検証ガード