1.4. ビルドコントローラー
build controller は、Build
リソースの更新を監視し、以下のタスクを実行します。
-
参照される
Strategy
オブジェクトがBuild
リソースに存在するかどうかを検証します。 -
Build
CR で指定されたパラメーターが参照されたビルドストラテジーに存在するかどうかを検証します。また、パラメーター名が予約された名前と競合するかどうかも検証します。 -
コンテナーレジストリーの出力シークレットが
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 つまたは複数の定義された |
|
パラメーターは参照されたストラテジーでは定義されません。これらのパラメーターは、ストラテジーの |
|
定義された |
|
|
| ユーザー指定の環境変数の名前が空白であることを示します。 |
| ユーザー指定の環境変数の値が空白であることを示します。 |