0Pricing
Helm Academy · レッスン

if と else による条件ブロック

設定されている場合にのみリソースをレンダリングします。

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

必要な場合だけレンダリングする

ユーザーが要求した場合だけリソースを出力したいことがあります。Helmでは、そのYAMLをconditionalで囲み、必要なときだけレンダリングできます。

ifアクション

ifブロックは{{ if SOMETHING }}で始まり、{{ end }}で閉じます。間にあるすべての内容は、条件がtrueの場合だけレンダリングされます。

{{ if .Values.ingress.enabled }}
# ingress yaml here
{{ end }}

Valuesで制御する

条件には通常、ユーザーが設定するvalueを使います。values.yamlでingress.enabledをtrueに切り替えると、囲まれたマニフェストが突然現れます。

ingress:
  enabled: true

必ずendで閉じる

すべてのifには{{ end }}を対応させる必要があります。忘れると、chartのレンダリング時にHelmがブロック未終了エラーを出します。

elseを追加する

フォールバックが必要ですか。{{ else }}ブランチを追加してください。trueの場合は最初のブロック、それ以外の場合はelseブロックがレンダリングされます。

{{ if .Values.tls }}
protocol: HTTPS
{{ else }}
protocol: HTTP
{{ end }}

else ifで条件をつなぐ

複数のケースには、{{ else if }}で条件をつなぎます。Helmは順番に確認し、条件がtrueになる最初のブランチをレンダリングします。

{{ if eq .Values.tier "gold" }}
replicas: 5
{{ else if eq .Values.tier "silver" }}
replicas: 3
{{ else }}
replicas: 1
{{ end }}

何がtrueとして扱われるか

値がemptyでない限り、ifはtrueです。false、ゼロ、空文字列、空のリストはいずれも条件内でfalseとして扱われます。

オプションフィールドを保護する

よくあるパターンでは、リソース全体ではなく1つのオプションフィールドを囲みます。ここでは、ユーザーが値を指定した場合だけannotationがレンダリングされます。

{{ if .Values.email }}
contact: {{ .Values.email }}
{{ end }}

空行に注意する

ifブロックでは、アクションがあった場所に空行が残ります。その空白がYAMLを壊すことがあるため、次は空白を削除する方法を学びます。🧹

ブランチをプレビューする

異なるvaluesでレンダリングし、どのブランチが選ばれるか確認してください。--setを使ったhelm templateで、デプロイ前に各条件を検証できます。

helm template ./mychart --set ingress.enabled=true

不足しているフラグにデフォルトを設定する

ユーザーがフラグを設定しなければ、emptyとして扱われ、ifはfalseのままです。そのため、chartではvalues.yamlに適切なdefaultを用意します。

ingress:
  enabled: false

クイックチェック

{{ if .Values.cache }}と記述しましたが、chartのレンダリングに失敗します。

まとめ

これでifを使ってYAMLの出力を制御し、elseやelse ifブランチを追加し、最後に{{ end }}で閉じられるようになりました。条件付きレンダリングを使いこなせます。🎯

よくある質問

「if と else による条件ブロック」レッスンは無料ですか?

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

「if と else による条件ブロック」で何を学びますか?

設定されている場合にのみリソースをレンダリングします。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Helm Academyを始めるのに経験は必要ですか?

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

「if と else による条件ブロック」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. if と else による条件ブロック
  2. 条件式の真偽値と演算子
  3. range でリストと Map をループする
  4. with でブロックの Scope を限定する
← Helm Academyに戻る