3.9. 构建运行状态
BuildRun
资源会在镜像构建状态更改时更新,如下例所示:
示例: BuildRun 带有 Unknown 状态
$ oc get buildrun buildah-buildrun-mp99r NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-buildrun-mp99r Unknown Unknown 1s
示例:带有 True 状态的 BuildRun
$ oc get buildrun buildah-buildrun-mp99r NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildah-buildrun-mp99r True Succeeded 29m 20m
BuildRun
资源将与状态相关的信息存储在 status.conditions
字段中。例如,类型为 Succeeded
的条件表示资源成功完成其操作。status.conditions
字段包括包括 BuildRun
资源的大量信息,如 status、reason 和 message。
3.9.1. 构建运行状态描述
BuildRun
自定义资源(CR)在镜像构建过程中可能具有不同的状态。下表涵盖了构建运行的不同状态:
Status | 原因 | 描述 |
---|---|---|
|
|
|
|
|
|
|
| 用户需要取消构建运行。此请求触发构建运行控制器,以请求取消相关任务运行。当这个状态存在时,取消仍在进行中。 |
|
|
创建 |
|
|
|
|
|
|
|
|
|
|
| 集群中没有找到引用的集群范围的策略。 |
|
| 在集群中没有找到引用的命名空间范围的策略。 |
|
|
将 |
|
|
未找到与 |
|
|
|
|
|
您没有为构建策略中定义的一些参数提供任何值,而无需任何默认值。您必须在 |
|
| 提供了 system 参数的值,这是不允许的。 |
|
| 提供了在构建策略中未定义的参数的值。 |
|
| 为带有错误类型的构建策略参数提供了一个值。例如,如果参数在构建策略中定义为数组或字符串,您必须相应地提供一组值或直接值。 |
|
|
一个参数的值包括多个值: |
|
|
数组参数的值中的项目不包括这些值: |
|
|
参数的值包含一个 |
|
|
一个参数的值包含一个 |
|
| 在集群中没有找到引用的服务帐户。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
定义的 |
|
|
定义的 |
|
| 构建运行 pod 已从其运行的节点中驱除。 |
3.9.2. 构建运行失败
当构建运行时,您可以检查 BuildRun
CR 中的 status.failureDetails
字段,以识别 pod 或容器中故障的确切点。status.failureDetails
字段包含错误消息和失败原因。只有在构建策略中定义了消息和原因时,您才会看到失败的消息和原因。
以下示例显示了构建运行失败:
# ... status: # ... failureDetails: location: container: step-source-default pod: baran-build-buildrun-gzmv5-b7wbf-pod-bbpqr message: The source repository does not exist, or you have insufficient permission to access it. reason: GitRemotePrivate
status.failureDetails
字段还为与 Git 相关的所有操作提供错误详情。
3.9.3. 构建运行状态的步骤结果
BuildRun
资源完成其执行后,.status
字段包含从构建运行控制器生成的步骤发出的 .status.taskResults
结果。结果包括用于构建镜像的源代码的镜像摘要或提交 SHA。在 BuildRun
资源中,.status.sources
字段包含来自执行源步骤的结果,.status.output
字段包含执行输出步骤的结果。
以下示例显示了带有 Git 源步骤结果的 BuildRun
资源:
示例:一个 BuildRun
资源,其中包含 Git 源的步骤结果
# ... status: buildSpec: # ... output: digest: sha256:07626e3c7fdd28d5328a8d6df8d29cd3da760c7f5e2070b534f9b880ed093a53 size: 1989004 sources: - name: default git: commitAuthor: xxx xxxxxx commitSha: f25822b85021d02059c9ac8a211ef3804ea8fdde branchName: main
以下示例显示了带有本地源代码步骤结果的 BuildRun
资源:
示例:一个带有本地源代码步骤结果的 BuildRun
资源
# ... status: buildSpec: # ... output: digest: sha256:07626e3c7fdd28d5328a8d6df8d29cd3da760c7f5e2070b534f9b880ed093a53 size: 1989004 sources: - name: default bundle: digest: sha256:0f5e2070b534f9b880ed093a537626e3c7fdd28d5328a8d6df8d29cd3da760c7
只有在构建策略中定义输出镜像时,才会查看输出镜像的摘要和大小。
3.9.4. 构建快照
对于每个构建运行协调,如果现有任务运行是该构建运行的一部分,则 BuildRun
资源更新状态中的 buildSpec
字段。
在这个版本中,Build
资源快照会生成并嵌入到 BuildRun
资源的 status.buildSpec
字段中。因此,buildSpec
字段包含原始 Build
规格的确切副本,用于执行特定的镜像构建。通过使用构建快照,您可以查看原始的 Build
资源配置。