0Pricing
DevOps Bootcamp · レッスン

CI における lint とテンプレートのゲート

無効なチャートによるビルドを早期に失敗させます。

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

クラスターに届く前にバグを見つける

壊れたチャートで失敗するのは本番クラスターではなく、パイプラインであるべきです。CI のゲートを使えば、プルリクエストが作成された時点で不正なチャートを拒否できます。🛡️

helm lint は最初のゲート

helm lintコマンドはチャートに対して静的チェックを実行します。クラスターに接続せず、構造、必須フィールド、一般的なベストプラクティス上の問題を検証します。

helm lint ./mychart

lint が実際にチェックする内容

lint はChart.yamlのフィールド不足、解析できないテンプレート、URL ではないアイコンなどを検出します。高速に実行でき、Kubernetes への接続も必要ありません。

Strict モードで警告を失敗に変える

--strictを追加すると、lint の警告でも実行が失敗します。CI では、誰にも読まれない警告を残すのではなく、少しでも問題があればビルドを失敗させます。

helm lint --strict ./mychart

実際の値で lint する

-fを渡すと、リリースで実際に使用する値に対して lint を実行できます。チャート自体は空の値で有効でも、本番の値を統合すると壊れることがあります。

helm lint -f values-prod.yaml ./mychart

第2のゲート: helm template

lint が通ったら、helm templateを実行してすべてのマニフェストをローカルでレンダリングします。テンプレート処理に失敗すると、Kubernetes に何も届く前にパイプラインが停止します。

helm template ./mychart > rendered.yaml

template がより多くの問題を検出する理由

lint は浅いチェックですが、helm templateは Go テンプレートのロジックを完全に評価します。range のタイプミスや nil 値は、デプロイ時ではなくここで検出できます。

終了コードでゲートを動かす

どちらのコマンドも、失敗時には終了コードとして0以外の値を返します。CI ランナーはそのコードを自動的に読み取り、ジョブを失敗にしてマージを阻止します。

レンダリング済み YAML を API に対して検証する

レンダリング結果をkubevalまたは kubeconform にパイプして、実際の Kubernetes スキーマに適合することを確認します。これにより、フィールド名の誤りを早期に検出できます。

helm template ./mychart | kubeconform -strict

CI ステップに組み込む

ゲートを1つのジョブで連結し、失敗したら残りを短絡させます。ほとんどのランナーでは&&によって最初の0以外の終了コードで停止するため、フィードバックを高速に保てます。

helm lint --strict ./mychart && helm template ./mychart > /dev/null

すべてのプルリクエストでゲートを実行する

これらのチェックはマージ時だけでなく、すべてのプルリクエストで実行します。レビュー担当者は、チャートが正しくレンダリングされることを示すグリーンのチェックを確認できます。

クイックチェック

Go テンプレートのロジックを完全に評価し、不正な range 式を検出するゲートはどれですか?

振り返り: CI で早期に失敗させる

すべての変更に対してhelm lint --strictを実行し、その後 helm template でゲートします。必要に応じて出力のスキーマもチェックします。不正なチャートはクラスターではなく、必ずビルドで失敗します。✅

よくある質問

「CI における lint とテンプレートのゲート」レッスンは無料ですか?

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

「CI における lint とテンプレートのゲート」で何を学びますか?

無効なチャートによるビルドを早期に失敗させます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「CI における lint とテンプレートのゲート」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. CI における lint とテンプレートのゲート
  2. helm diff による変更のプレビュー
  3. upgrade --install --atomic による自動デプロイ
  4. リリースジョブからのチャート公開
← DevOps Bootcampに戻る