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)在镜像构建过程中可能具有不同的状态。下表涵盖了构建运行的不同状态:

表 3.2. 构建运行的状态
Status原因描述

Unknown

待处理

BuildRun 资源等待状态为 Pending 的 pod。

Unknown

Running

BuildRun 资源已被验证并启动来执行其工作。

Unknown

BuildRunCanceled

用户需要取消构建运行。此请求触发构建运行控制器,以请求取消相关任务运行。当这个状态存在时,取消仍在进行中。

True

Succeeded

创建 BuildRun 资源的 pod。

False

Failed

BuildRun 资源在其中一个步骤中失败。

False

BuildRunTimeout

BuildRun 资源的执行超时。

False

UnknownStrategyKind

Kind 字段中定义的策略类型是 unknown。您可以定义这些策略类型: ClusterBuildStrategyBuildStrategy

False

ClusterBuildStrategyNotFound

集群中没有找到引用的集群范围的策略。

False

BuildStrategyNotFound

在集群中没有找到引用的命名空间范围的策略。

False

SetOwnerReferenceFailed

BuildRun 资源的 ownerReferences 字段设置为相关的 TaskRun 资源会失败。

False

TaskRunIsMissing

未找到与 BuildRun 资源相关的 TaskRun 资源。

False

TaskRunGenerationFailed

TaskRun 规格的生成失败。

False

MissingParameterValues

您没有为构建策略中定义的一些参数提供任何值,而无需任何默认值。您必须在 BuildBuildRun CR 中提供这些参数的值。

False

RestrictedParametersInUse

提供了 system 参数的值,这是不允许的。

False

UndefinedParameter

提供了在构建策略中未定义的参数的值。

False

WrongParameterValueType

为带有错误类型的构建策略参数提供了一个值。例如,如果参数在构建策略中定义为数组或字符串,您必须相应地提供一组值或直接值。

False

InconsistentParameterValues

一个参数的值包括多个值: value,configMapValue, 和 secretValue。您必须仅提供上述值之一才能保持一致性。

False

EmptyArrayItemParameterValues

数组参数的值中的项目不包括这些值: value,configMapValue, 和 secretValue。您必须仅提供上述值之一,因为不允许使用 null 数组项。

False

IncompleteConfigMapValueParameterValues

参数的值包含一个 configMapValue 值,其中 namevalue 字段为空。您必须指定空字段以指向命名空间中的现有配置映射键。

False

IncompleteSecretValueParameterValues

一个参数的值包含一个 secretValue 值,其中 namevalue 字段为空。您必须指定空字段以指向命名空间中的现有 secret 密钥。

False

ServiceAccountNotFound

在集群中没有找到引用的服务帐户。

False

BuildRegistrationFailed

BuildRun 资源中引用的构建处于 Failed 状态。

False

BuildNotFound

BuildRun 资源中引用的构建未找到。

False

BuildRunCanceled

BuildRun 和相关的 TaskRun 资源已被成功取消。

False

BuildRunNameInvalid

metadata.name 字段中定义的构建运行名称无效。您必须在 BuildRun CR 中为构建运行名称提供有效的标签值。

False

BuildRunNoRefOrSpec

BuildRun 资源没有定义 spec.build.namespec.build.spec 字段。

False

BuildRunAmbiguousBuild

定义的 BuildRun 资源同时使用 spec.build.namespec.build.spec 字段。一次只允许其中一个参数。

False

BuildRunBuildFieldOverrideForbidden

定义的 spec.build.name 字段将覆盖与 spec.build.spec 字段结合使用,该字段不允许使用。使用 spec.build.spec 字段直接指定对应的值。

False

PodEvicted

构建运行 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 资源配置。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.