1.4. ビルドコントローラー
ビルドコントローラーは、Build リソースの更新を監視し、以下のタスクを実行します。
-
参照される
StrategyオブジェクトがBuildリソースに存在するかどうかを検証します。 -
BuildCR で指定されたパラメーターが参照されたビルドストラテジーに存在するかどうかを検証します。また、パラメーター名が予約された名前と競合するかどうかも検証します。 -
コンテナーレジストリーの出力シークレットが
Buildリソースに存在するかどうかを検証します。 -
参照される
spec.source.git.urlエンドポイント URL がBuildリソースに存在するかどうかを検証します。
build run controller は、Build または TaskRun リソースの更新を監視し、以下のタスクを実行します。
-
既存の
TaskRunリソースを検索し、その親BuildRunリソースのステータスを更新します。 -
指定したサービスアカウントを取得し、
Buildリソースの出力シークレットと共に設定します。 -
TaskRunリソースが存在しない場合は、コントローラーが新しい TektonTaskRunリソースを生成し、TaskRunリソースへの参照を設定します。 -
TaskRunリソースの後続の更新では、コントローラーが親のBuildRunリソースを更新します。
1.4.1. ビルドの検証 リンクのコピーリンクがクリップボードにコピーされました!
BuildRun リソースのトリガーを回避して、依存関係や設定が正しくない、または欠落していることが原因で失敗しないように、ビルドコントローラーがこのような内容を事前に検証します。すべての検証が成功すると、Succeeded という名前の status.reason フィールドが表示されます。ただし、検証が失敗した場合は、status.reason フィールドと status.message フィールドをチェックして根本原因を理解する必要があります。
| status.reason フィールド | 説明 |
|---|---|
|
| namespace レベルで参照されているストラテジーは存在しません。 |
|
| クラスターレベルで参照されているストラテジーは存在しません。 |
|
|
|
|
| Git への認証に使用されるシークレットは存在しません。 |
|
| コンテナーレジストリーに対する認証に使用されるシークレットが存在しません。 |
|
| コンテナーレジストリーに対する認証に使用されるシークレットが存在しません。 |
|
| 認証に使用されるシークレットが複数欠落しています。 |
|
|
1 つまたは複数の定義済み |
|
|
パラメーターは参照されたストラテジーでは定義されません。これらのパラメーターは、ストラテジーの |
|
|
定義された |
|
|
|
|
| ユーザー指定の環境変数の名前が空白であることを示します。 |
|
| ユーザー指定の環境変数の値が空白であることを示します。 |