搜索

3.9. 构建运行状态

download PDF

每当镜像构建状态更改时,BuildRun 资源都会更新,如下例所示:

示例:带有 Unknown 状态的 BuildRun

$ 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

运行中

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

Unknown

BuildRunCanceled

用户已请求取消构建运行。此请求会触发构建运行控制器,以发出取消相关任务运行的请求。当存在此状态时,取消仍然处于进程中。

True

Succeeded

BuildRun 资源的 pod 已创建。

False

Failed

BuildRun 资源的步骤之一失败。

False

BuildRunTimeout

BuildRun 资源的执行超时。

False

UnknownStrategyKind

Kind 字段中定义的策略类型未知。您可以定义这些策略类型: 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

参数的值包含多个这些值: valueconfigMapValuesecretValue。您必须仅提供上述值之一才能保持一致性。

False

EmptyArrayItemParameterValues

数组参数的值中的项目不包含这些值: valueconfigMapValuesecretValue。您必须仅提供上述值之一,因为不允许 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 资源:

示例:带有 Git 源步骤结果的 BuildRun 资源

# ...
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 资源配置。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.