CI における lint とテンプレートのゲート
無効なチャートによるビルドを早期に失敗させます。
「CI における lint とテンプレートのゲート」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
クラスターに届く前にバグを見つける
壊れたチャートで失敗するのは本番クラスターではなく、パイプラインであるべきです。CI のゲートを使えば、プルリクエストが作成された時点で不正なチャートを拒否できます。🛡️
helm lint は最初のゲート
helm lintコマンドはチャートに対して静的チェックを実行します。クラスターに接続せず、構造、必須フィールド、一般的なベストプラクティス上の問題を検証します。
helm lint ./mychartlint が実際にチェックする内容
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.yamltemplate がより多くの問題を検出する理由
lint は浅いチェックですが、helm templateは Go テンプレートのロジックを完全に評価します。range のタイプミスや nil 値は、デプロイ時ではなくここで検出できます。
終了コードでゲートを動かす
どちらのコマンドも、失敗時には終了コードとして0以外の値を返します。CI ランナーはそのコードを自動的に読み取り、ジョブを失敗にしてマージを阻止します。
レンダリング済み YAML を API に対して検証する
レンダリング結果をkubevalまたは kubeconform にパイプして、実際の Kubernetes スキーマに適合することを確認します。これにより、フィールド名の誤りを早期に検出できます。
helm template ./mychart | kubeconform -strictCI ステップに組み込む
ゲートを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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- CI における lint とテンプレートのゲート
- helm diff による変更のプレビュー
- upgrade --install --atomic による自動デプロイ
- リリースジョブからのチャート公開