×
描述

构建配置定义了新容器镜像的构建过程。共有三种可能的构建类型:使用 Dockerfile 的容器镜像构建、使用特殊准备的基础镜像的源到镜像构建(该镜像接受可使其可运行的源代码),以及可以使用任意容器镜像作为基础并接受构建参数的自定义构建。构建在集群上运行,完成后将推送到“输出”部分中指定的容器镜像注册表。构建可以通过 webhook 触发,当基础镜像更改时,或者当用户手动请求创建新的构建时。

每个由构建配置创建的构建都有编号,并可追溯到其父配置。可以同时触发多个构建。没有设置“输出”的构建可用于测试代码或运行验证构建。

兼容性级别 1:在主要版本中稳定至少 12 个月或 3 个次要版本(以较长者为准)。

类型

对象

必需
  • spec

规范

属性 类型 描述

apiVersion

字符串

APIVersion 定义了对象的此表示形式的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从此客户端提交请求的端点推断出来。不能更新。采用驼峰命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta_v2

metadata 是标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

BuildConfigSpec 描述了何时以及如何创建构建

status

对象

BuildConfigStatus 包含构建配置对象的当前状态。

.spec

描述

BuildConfigSpec 描述了何时以及如何创建构建

类型

对象

必需
  • strategy

属性 类型 描述

completionDeadlineSeconds

整数

completionDeadlineSeconds 是一个可选的秒数持续时间,从构建 pod 在系统中排队的时间开始计算,构建可以在节点上处于活动状态的时间,之后系统将主动尝试终止构建;值必须为正整数

failedBuildsHistoryLimit

整数

failedBuildsHistoryLimit 是要保留的旧失败构建的数量。创建 BuildConfig 时,将保留最近 5 个失败的构建,除非设置此值。如果在创建 BuildConfig 后将其删除,则将保留所有失败的构建。

mountTrustedCA

布尔值

mountTrustedCA 将集群的受信任证书颁发机构(如集群代理配置中定义)绑定安装到构建中。这允许构建中的进程信任由自定义 PKI 证书颁发机构签名的组件,例如私有构件存储库和 HTTPS 代理。

当此字段设置为 true 时,构建内的 /etc/pki/ca-trust 内容由构建容器管理,并且对该目录或其子目录的任何更改(例如,在 Dockerfile RUN 指令中)不会保留在构建的输出镜像中。

nodeSelector

对象 (字符串)

nodeSelector 是一个选择器,构建 pod 必须满足该选择器才能适应节点。如果为 nil,则可以使用集群的默认构建节点选择器值来覆盖它。如果设置为空映射或具有任何值的映射,则忽略默认构建节点选择器值。

output

对象

BuildOutput 是构建策略的输入,并描述策略应生成的容器镜像。

postCommit

对象

BuildPostCommitSpec 包含构建提交后钩子规范。该钩子在镜像的最后一层提交后且将其推送到注册表之前,立即在一个运行构建输出镜像的临时容器中执行命令。命令的执行当前工作目录 ($PWD) 设置为镜像的 WORKDIR。

如果钩子执行失败,则构建将被标记为失败。如果脚本或命令返回非零退出代码,或者与启动临时容器相关的任何其他错误,则构建将失败。

有五种不同的方法可以配置钩子。例如,以下所有形式都是等效的,并将执行 rake test --verbose

1. Shell 脚本

"postCommit": { "script": "rake test --verbose", }

以上是一种便捷形式,等效于

"postCommit": { "command": ["/bin/sh", "-ic"], "args": ["rake test --verbose"] }

2. 将命令作为镜像入口点

"postCommit": { "commit": ["rake", "test", "--verbose"] }

如 Docker 文档中所述,命令在 exec 形式中覆盖镜像入口点:https://docs.docker.net.cn/engine/reference/builder/#entrypoint

3. 将参数传递给默认入口点

"postCommit": { "args": ["rake", "test", "--verbose"] }

只有当镜像入口点可以处理参数时,此形式才有用。

4. 带参数的 Shell 脚本

"postCommit": { "script": "rake test $1", "args": ["--verbose"] }

如果您需要传递在 shell 脚本中难以正确引用的参数,此形式很有用。在脚本中,$0 将为 "/bin/sh",$1、$2 等是来自 Args 的位置参数。

5. 带参数的命令

"postCommit": { "command": ["rake", "test"], "args": ["--verbose"] }

此形式等效于将参数附加到 Command 切片。

同时提供 Script 和 Command 是无效的。如果没有指定任何字段,则不会执行钩子。

resources

ResourceRequirements

resources 计算执行构建所需的资源。

revision

对象

SourceRevision 是构建源的修订或提交信息。

runPolicy

字符串

RunPolicy 描述了如何调度从此构建配置创建的新构建以进行执行。这是可选的,如果未指定,我们默认为“Serial”。

serviceAccount

字符串

serviceAccount 是用于运行此构建创建的 pod 的 ServiceAccount 的名称。该 pod 将被允许使用 ServiceAccount 引用的密钥。

source

对象

BuildSource 是用于构建的 SCM。

strategy

对象

BuildStrategy 包含如何执行构建的详细信息。

successfulBuildsHistoryLimit

整数

successfulBuildsHistoryLimit 是要保留的旧成功构建的数量。创建 BuildConfig 时,将保留 5 个最新的成功构建,除非设置此值。如果在创建 BuildConfig 后将其删除,则将保留所有成功的构建。

triggers

数组

triggers 确定如何从 BuildConfig 启动新的构建。如果未定义触发器,则新的构建只能作为显式客户端构建创建的结果发生。

triggers[]

对象

BuildTriggerPolicy 描述了导致新构建的单个触发器的策略。

.spec.output

描述

BuildOutput 是构建策略的输入,并描述策略应生成的容器镜像。

类型

对象

属性 类型 描述

imageLabels

数组

imageLabels 定义应用于生成的镜像的标签列表。如果有多个标签具有相同的名称,则使用列表中的最后一个标签。

imageLabels[]

对象

ImageLabel 表示应用于生成的镜像的标签。

pushSecret

LocalObjectReference_v2

PushSecret 是一个密钥的名称,该密钥将用于设置执行 Docker 推送到启用身份验证的 Docker 注册表(或 Docker Hub)的身份验证。

to

ObjectReference

to 定义一个可选位置,用于将此构建的输出推送到该位置。Kind 必须是“ImageStreamTag”或“DockerImage”之一。此值将用于查找要推送到其中的容器镜像存储库。对于 ImageStreamTag,除非指定 Namespace,否则将在构建的命名空间中查找 ImageStreamTag。

.spec.output.imageLabels

描述

imageLabels 定义应用于生成的镜像的标签列表。如果有多个标签具有相同的名称,则使用列表中的最后一个标签。

类型

数组

.spec.output.imageLabels[]

描述

ImageLabel 表示应用于生成的镜像的标签。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

name 定义标签的名称。它必须具有非零长度。

value

字符串

value 定义标签的字面值。

.spec.postCommit

描述

BuildPostCommitSpec 包含构建提交后钩子规范。该钩子在镜像的最后一层提交后且将其推送到注册表之前,立即在一个运行构建输出镜像的临时容器中执行命令。命令的执行当前工作目录 ($PWD) 设置为镜像的 WORKDIR。

如果钩子执行失败,则构建将被标记为失败。如果脚本或命令返回非零退出代码,或者与启动临时容器相关的任何其他错误,则构建将失败。

有五种不同的方法可以配置钩子。例如,以下所有形式都是等效的,并将执行 rake test --verbose

  1. Shell 脚本

    "postCommit": {
      "script": "rake test --verbose",
    }
    The above is a convenient form which is equivalent to:
    "postCommit": {
      "command": ["/bin/sh", "-ic"],
      "args":    ["rake test --verbose"]
    }
  2. 将命令作为镜像入口点

    "postCommit": {
      "commit": ["rake", "test", "--verbose"]
    }
    Command overrides the image entrypoint in the exec form, as documented in
    Docker: https://docs.docker.net.cn/engine/reference/builder/#entrypoint.
  3. 将参数传递给默认入口点

    "postCommit": {
     "args": ["rake", "test", "--verbose"]
    }
    This form is only useful if the image entrypoint can handle arguments.
  4. 带参数的 Shell 脚本

    "postCommit": {
      "script": "rake test $1",
      "args":   ["--verbose"]
    }
    This form is useful if you need to pass arguments that would otherwise be
    hard to quote properly in the shell script. In the script, $0 will be
    "/bin/sh" and $1, $2, etc, are the positional arguments from Args.
  5. 带参数的命令

    "postCommit": {
      "command": ["rake", "test"],
      "args":    ["--verbose"]
    }
    This form is equivalent to appending the arguments to the Command slice.

同时提供 Script 和 Command 是无效的。如果没有指定任何字段,则不会执行钩子。

类型

对象

属性 类型 描述

args

数组 (字符串)

args 是提供给 Command、Script 或容器镜像的默认入口点的参数列表。这些参数紧跟在要运行的命令之后。

command

数组 (字符串)

command 是要运行的命令。它不能与 Script 一起指定。如果镜像没有 /bin/sh,或者您不想使用 shell,则可能需要此命令。在所有其他情况下,使用 Script 可能更方便。

script

字符串

script 是要使用 /bin/sh -ic 运行的 shell 脚本。它不能与 Command 一起指定。当 shell 脚本适合执行构建后钩子时(例如,使用 rake test 运行单元测试),请使用 Script。如果您需要控制镜像入口点,或者镜像没有 /bin/sh,请使用 Command 和/或 Args。需要 -i 标志来支持使用软件集合 (SCL) 的 CentOS 和 RHEL 镜像,以便在 shell 中启用适当的集合。例如,在 Ruby 镜像中,这对于使 rubybundle 和其他二进制文件在 PATH 中可用是必要的。

.spec.revision

描述

SourceRevision 是构建源的修订或提交信息。

类型

对象

必需
  • type

属性 类型 描述

git

对象

GitSourceRevision 是构建的 git 源的提交信息。

type

字符串

构建源的类型,可以是“Source”、“Dockerfile”、“Binary”或“Images”之一。

.spec.revision.git

描述

GitSourceRevision 是构建的 git 源的提交信息。

类型

对象

属性 类型 描述

author

对象

SourceControlUser 定义源代码控制用户的身份。

commit

字符串

commit 是标识特定提交的提交哈希。

committer

对象

SourceControlUser 定义源代码控制用户的身份。

message

字符串

message 是特定提交的描述。

.spec.revision.git.author

描述

SourceControlUser 定义源代码控制用户的身份。

类型

对象

属性 类型 描述

email

字符串

源代码控制用户的电子邮件地址。

name

字符串

源代码控制用户的名称。

.spec.revision.git.committer

描述

SourceControlUser 定义源代码控制用户的身份。

类型

对象

属性 类型 描述

email

字符串

源代码控制用户的电子邮件地址。

name

字符串

源代码控制用户的名称。

.spec.source

描述

BuildSource 是用于构建的 SCM。

类型

对象

属性 类型 描述

binary

对象

BinaryBuildSource 描述了要用于 Docker 和 Source 构建策略的二进制文件,其中该文件将被提取并用作构建源。

configMaps

数组

configMaps 代表将用于构建的 configMaps 及其目标的列表。

configMaps[]

对象

ConfigMapBuildSource 描述了一个 ConfigMap 及其目标目录,这些内容只会在构建时使用。此处引用的 ConfigMap 内容将被复制到目标目录中,而不是挂载。

contextDir

字符串

contextDir 指定应用程序源代码所在的子目录。这允许在存储库根目录以外的目录中存放可构建的源代码。

dockerfile

字符串

dockerfile 是要构建的 Dockerfile 的原始内容。当指定此选项时,FROM 指令可能会根据您的策略基础镜像进行修改,并且来自您的策略环境的其他 ENV 语句将添加到 FROM 指令之后,但在 Dockerfile 其他语句之前。Dockerfile 源类型可以与其他选项(如 git)一起使用——在这些情况下,Git 仓库将替换 context dir 中任何固有的 Dockerfile。

git

对象

GitBuildSource 定义了 Git SCM 的参数

images

数组

images 描述了一组用于为构建提供源的镜像。

images[]

对象

ImageSource 用于描述将从镜像中提取或在多阶段构建期间使用的构建源。可以使用 ImageStreamTag、ImageStreamImage 或 DockerImage 类型的引用。可以指定一个 pull secret 从外部注册表拉取镜像,或者覆盖默认的服务帐户密钥(如果从内部注册表拉取)。镜像源可以用于从镜像中提取内容并将其与存储库源一起放入构建上下文,或者直接在多阶段容器镜像构建期间使用,以允许复制内容而不会覆盖存储库源的内容(参见“paths”和“as”字段)。

secrets

数组

secrets 表示仅在构建时使用的密钥及其目标的列表。

secrets[]

对象

SecretBuildSource 描述了一个密钥及其目标目录,这些内容只会在构建时使用。此处引用的密钥内容将被复制到目标目录中,而不是挂载。

sourceSecret

LocalObjectReference_v2

sourceSecret 是一个 Secret 的名称,用于设置克隆私有存储库的身份验证。该密钥包含远程存储库的有效凭据,其中数据的键表示要使用的身份验证方法,值是 base64 编码的凭据。支持的身份验证方法包括:ssh-privatekey。

type

字符串

构建输入的类型

.spec.source.binary

描述

BinaryBuildSource 描述了要用于 Docker 和 Source 构建策略的二进制文件,其中该文件将被提取并用作构建源。

类型

对象

属性 类型 描述

asFile

字符串

asFile 指示提供的二进制输入应被视为构建输入中的单个文件。例如,指定“webapp.war”会将提供的二进制文件作为/webapp.war放置在构建器中。如果留空,Docker 和 Source 构建策略假定此文件是 zip、tar 或 tar.gz 文件,并将其解压缩为源代码。自定义策略将此二进制文件作为标准输入接收。此文件名不能包含斜杠或为 '..' 或 '.'。

.spec.source.configMaps

描述

configMaps 代表将用于构建的 configMaps 及其目标的列表。

类型

数组

.spec.source.configMaps[]

描述

ConfigMapBuildSource 描述了一个 ConfigMap 及其目标目录,这些内容只会在构建时使用。此处引用的 ConfigMap 内容将被复制到目标目录中,而不是挂载。

类型

对象

必需
  • configMap

属性 类型 描述

configMap

LocalObjectReference_v2

configMap 是对要在构建中使用的现有 ConfigMap 的引用。

destinationDir

字符串

destinationDir 是 ConfigMap 中的文件在构建时可用的目录。对于 Source 构建策略,这些文件将被注入到运行组装脚本的容器中。对于容器镜像构建策略,这些文件将被复制到 Dockerfile 所在的构建目录中,以便用户可以在容器镜像构建期间使用 ADD 或 COPY 命令。

.spec.source.git

描述

GitBuildSource 定义了 Git SCM 的参数

类型

对象

必需
  • uri

属性 类型 描述

httpProxy

字符串

httpProxy 是用于通过 http 访问 Git 存储库的代理。

httpsProxy

字符串

httpsProxy 是用于通过 https 访问 Git 存储库的代理。

noProxy

字符串

noProxy 是不需要使用代理的域名列表。

ref

字符串

ref 是要构建的分支/标签/引用。

uri

字符串

uri 指向要构建的源。源的结构将取决于要运行的构建类型。

.spec.source.images

描述

images 描述了一组用于为构建提供源的镜像。

类型

数组

.spec.source.images[]

描述

ImageSource 用于描述将从镜像中提取或在多阶段构建期间使用的构建源。可以使用 ImageStreamTag、ImageStreamImage 或 DockerImage 类型的引用。可以指定一个 pull secret 从外部注册表拉取镜像,或者覆盖默认的服务帐户密钥(如果从内部注册表拉取)。镜像源可以用于从镜像中提取内容并将其与存储库源一起放入构建上下文,或者直接在多阶段容器镜像构建期间使用,以允许复制内容而不会覆盖存储库源的内容(参见“paths”和“as”字段)。

类型

对象

必需
  • from

属性 类型 描述

as

数组 (字符串)

在多阶段容器镜像构建期间,此源将代替的一组镜像名称列表。例如,使用“COPY --from=nginx:latest”的 Dockerfile 将首先检查此字段中是否有包含“nginx:latest”的镜像源,然后再尝试直接拉取。如果 Dockerfile 没有引用镜像源,则会忽略它。此字段和 paths 都可以设置,在这种情况下,内容将被使用两次。

from

ObjectReference

from 是对 ImageStreamTag、ImageStreamImage 或 DockerImage 的引用,从中复制源。

paths

数组

paths 是要从镜像中复制的源路径和目标路径的列表。在开始构建之前,此内容将被复制到构建上下文。如果没有设置路径,则构建上下文将不会更改。

paths[]

对象

ImageSourcePath 描述了要从源镜像复制的路径及其在构建目录中的目标。

pullSecret

LocalObjectReference_v2

pullSecret 是对要用于从注册表拉取镜像的密钥的引用。如果从 OpenShift 注册表拉取镜像,则不需要设置此字段。

.spec.source.images[].paths

描述

paths 是要从镜像中复制的源路径和目标路径的列表。在开始构建之前,此内容将被复制到构建上下文。如果没有设置路径,则构建上下文将不会更改。

类型

数组

.spec.source.images[].paths[]

描述

ImageSourcePath 描述了要从源镜像复制的路径及其在构建目录中的目标。

类型

对象

必需
  • sourcePath

  • destinationDir

属性 类型 描述

destinationDir

字符串

destinationDir 是构建目录中放置从镜像复制的文件的相对目录。

sourcePath

字符串

sourcePath 是镜像内要复制到构建目录的文件或目录的绝对路径。如果源路径以 / 结尾,则将复制目录的内容,但不会在目标位置创建目录本身。

.spec.source.secrets

描述

secrets 表示仅在构建时使用的密钥及其目标的列表。

类型

数组

.spec.source.secrets[]

描述

SecretBuildSource 描述了一个密钥及其目标目录,这些内容只会在构建时使用。此处引用的密钥内容将被复制到目标目录中,而不是挂载。

类型

对象

必需
  • secret

属性 类型 描述

destinationDir

字符串

destinationDir 是密钥中的文件在构建时可用的目录。对于 Source 构建策略,这些文件将被注入到运行组装脚本的容器中。稍后,当脚本完成后,所有注入的文件都将被截断为零长度。对于容器镜像构建策略,这些文件将被复制到 Dockerfile 所在的构建目录中,以便用户可以在容器镜像构建期间使用 ADD 或 COPY 命令。

secret

LocalObjectReference_v2

secret 是对要在构建中使用的现有密钥的引用。

.spec.strategy

描述

BuildStrategy 包含如何执行构建的详细信息。

类型

对象

属性 类型 描述

customStrategy

对象

CustomBuildStrategy 定义了特定于自定义构建的输入参数。

dockerStrategy

对象

DockerBuildStrategy 定义了特定于容器镜像构建的输入参数。

jenkinsPipelineStrategy

对象

JenkinsPipelineBuildStrategy 包含 Jenkins Pipeline 构建的特定参数。已弃用:请使用 OpenShift Pipelines

sourceStrategy

对象

SourceBuildStrategy 定义了特定于 Source 构建的输入参数。

type

字符串

type 是构建策略的类型。

.spec.strategy.customStrategy

描述

CustomBuildStrategy 定义了特定于自定义构建的输入参数。

类型

对象

必需
  • from

属性 类型 描述

buildAPIVersion

字符串

buildAPIVersion 是序列化并传递给自定义构建器的 Build 对象的请求 API 版本。

env

数组 (EnvVar)

env 包含要传递到构建器容器的其他环境变量。

exposeDockerSocket

布尔值

exposeDockerSocket 将允许从容器内部运行 Docker 命令(和构建容器镜像)。

forcePull

布尔值

forcePull 描述了控制器是否应该配置构建 pod 以始终拉取构建器镜像,或者仅在本地不存在时才拉取。

from

ObjectReference

from 是对 DockerImage、ImageStreamTag 或 ImageStreamImage 的引用,从中拉取容器镜像。

pullSecret

LocalObjectReference_v2

pullSecret 是一个 Secret 的名称,用于设置从私有 Docker 镜像仓库拉取容器镜像的认证。

secrets

数组

secrets 是一个列表,包含将在构建 Pod 中包含的其他 Secret。

secrets[]

对象

SecretSpec 指定一个将在构建 Pod 中包含的 Secret 及其对应的挂载点。

.spec.strategy.customStrategy.secrets

描述

secrets 是一个列表,包含将在构建 Pod 中包含的其他 Secret。

类型

数组

.spec.strategy.customStrategy.secrets[]

描述

SecretSpec 指定一个将在构建 Pod 中包含的 Secret 及其对应的挂载点。

类型

对象

必需
  • secretSource

  • mountPath

属性 类型 描述

mountPath

字符串

mountPath 是挂载 Secret 的路径。

secretSource

LocalObjectReference_v2

secretSource 是对 Secret 的引用。

.spec.strategy.dockerStrategy

描述

DockerBuildStrategy 定义了特定于容器镜像构建的输入参数。

类型

对象

属性 类型 描述

buildArgs

数组 (EnvVar)

buildArgs 包含将在 Dockerfile 中解析的构建参数。更多详情请参见 https://docs.docker.net.cn/engine/reference/builder/#/arg。注意:仅支持 'name' 和 'value' 字段。'valueFrom' 字段上的任何设置都将被忽略。

dockerfilePath

字符串

dockerfilePath 是将用于构建容器镜像的 Dockerfile 的路径,相对于上下文根目录 (contextDir)。如果未设置,则默认为 Dockerfile

env

数组 (EnvVar)

env 包含要传递到构建器容器的其他环境变量。

forcePull

布尔值

forcePull 描述构建器是否应该在构建之前从注册表拉取镜像。

from

ObjectReference

from 是对 DockerImage、ImageStreamTag 或 ImageStreamImage 的引用,它会覆盖 Dockerfile 中的 FROM 镜像用于构建。如果 Dockerfile 使用多阶段构建,这将替换文件中最后一个 FROM 指令中的镜像。

imageOptimizationPolicy

字符串

imageOptimizationPolicy 描述系统在构建镜像以减小最终大小或减少构建镜像所花费的时间时可以使用哪些优化。默认策略是 'None',这意味着最终构建的镜像将等同于通过容器镜像构建 API 创建的镜像。实验性策略 'SkipLayers' 将避免在每个镜像步骤之间提交新的层,如果 Dockerfile 无法提供与 'None' 策略的兼容性,则会失败。另一个实验性策略 'SkipLayersAndWarn' 与 'SkipLayers' 相同,只是如果无法保持兼容性,则会发出警告。

noCache

布尔值

如果 noCache 设置为 true,则表示必须使用 --no-cache=true 标志执行容器镜像构建。

pullSecret

LocalObjectReference_v2

pullSecret 是一个 Secret 的名称,用于设置从私有 Docker 镜像仓库拉取容器镜像的认证。

volumes

数组

volumes 是输入卷的列表,可以将其挂载到构建运行时环境中。构建仅支持 Kubernetes 卷源的一个子集。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

volumes[]

对象

BuildVolume 描述一个提供给构建 Pod 的卷,以便可以将其挂载到 buildah 的运行时环境中。仅支持 Kubernetes 卷源的一个子集。

.spec.strategy.dockerStrategy.volumes

描述

volumes 是输入卷的列表,可以将其挂载到构建运行时环境中。构建仅支持 Kubernetes 卷源的一个子集。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

类型

数组

.spec.strategy.dockerStrategy.volumes[]

描述

BuildVolume 描述一个提供给构建 Pod 的卷,以便可以将其挂载到 buildah 的运行时环境中。仅支持 Kubernetes 卷源的一个子集。

类型

对象

必需
  • name

  • source

  • mounts

属性 类型 描述

mounts

数组

mounts 表示卷在镜像构建容器中的位置。

mounts[]

对象

BuildVolumeMount 描述在 buildah 的运行时环境中挂载卷。

name

字符串

name 是此 BuildVolume 的唯一标识符。它必须符合 Kubernetes DNS 标签标准,并且在 Pod 内必须唯一。与构建控制器添加的名称冲突的名称将导致构建失败,并显示详细说明哪个名称导致错误的错误消息。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

source

对象

BuildVolumeSource 表示要挂载的卷的来源。任何给定时间只能指定其支持类型之一。

.spec.strategy.dockerStrategy.volumes[].mounts

描述

mounts 表示卷在镜像构建容器中的位置。

类型

数组

.spec.strategy.dockerStrategy.volumes[].mounts[]

描述

BuildVolumeMount 描述在 buildah 的运行时环境中挂载卷。

类型

对象

必需
  • destinationPath

属性 类型 描述

destinationPath

字符串

destinationPath 是应挂载卷的 buildah 运行时环境中的路径。构建镜像中的临时挂载和后备卷都将以只读方式挂载。必须是绝对路径,不能包含 '..' 或 ':',并且不能与构建器进程生成的目的地路径冲突。与构建控制器添加的路径冲突的路径将导致构建失败,并显示详细说明哪个路径导致错误的错误消息。

.spec.strategy.dockerStrategy.volumes[].source

描述

BuildVolumeSource 表示要挂载的卷的来源。任何给定时间只能指定其支持类型之一。

类型

对象

必需
  • type

属性 类型 描述

configMap

ConfigMapVolumeSource_v2

configMap 表示应填充此卷的 ConfigMap。

csi

CSIVolumeSource

csi 表示由支持此功能的外部 CSI 驱动程序提供的短暂存储。

secret

SecretVolumeSource_v2

secret 表示应填充此卷的 Secret。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

type

字符串

type 是卷源的 BuildVolumeSourceType。类型必须与填充的卷源匹配。有效类型为:Secret、ConfigMap。

.spec.strategy.jenkinsPipelineStrategy

描述

JenkinsPipelineBuildStrategy 包含 Jenkins Pipeline 构建的特定参数。已弃用:请使用 OpenShift Pipelines

类型

对象

属性 类型 描述

env

数组 (EnvVar)

env 包含要传递到构建管道的其他环境变量。

jenkinsfile

字符串

Jenkinsfile 定义 Jenkinsfile 的可选原始内容,该内容定义了 Jenkins 管道构建。

jenkinsfilePath

字符串

JenkinsfilePath 是将用于配置相对于上下文根目录 (contextDir) 的管道的 Jenkinsfile 的可选路径。如果 JenkinsfilePath 和 Jenkinsfile 都未指定,则默认为指定 contextDir 根目录中的 Jenkinsfile。

.spec.strategy.sourceStrategy

描述

SourceBuildStrategy 定义了特定于 Source 构建的输入参数。

类型

对象

必需
  • from

属性 类型 描述

env

数组 (EnvVar)

env 包含要传递到构建器容器的其他环境变量。

forcePull

布尔值

forcePull 描述构建器是否应该在构建之前从注册表拉取镜像。

from

ObjectReference

from 是对 DockerImage、ImageStreamTag 或 ImageStreamImage 的引用,从中拉取容器镜像。

incremental

布尔值

如果 incremental 标志设置为 true,则强制 Source 构建执行增量构建。

pullSecret

LocalObjectReference_v2

pullSecret 是一个 Secret 的名称,用于设置从私有 Docker 镜像仓库拉取容器镜像的认证。

scripts

字符串

scripts 是 Source 脚本的位置。

volumes

数组

volumes 是输入卷的列表,可以将其挂载到构建运行时环境中。构建仅支持 Kubernetes 卷源的一个子集。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

volumes[]

对象

BuildVolume 描述一个提供给构建 Pod 的卷,以便可以将其挂载到 buildah 的运行时环境中。仅支持 Kubernetes 卷源的一个子集。

.spec.strategy.sourceStrategy.volumes

描述

volumes 是输入卷的列表,可以将其挂载到构建运行时环境中。构建仅支持 Kubernetes 卷源的一个子集。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

类型

数组

.spec.strategy.sourceStrategy.volumes[]

描述

BuildVolume 描述一个提供给构建 Pod 的卷,以便可以将其挂载到 buildah 的运行时环境中。仅支持 Kubernetes 卷源的一个子集。

类型

对象

必需
  • name

  • source

  • mounts

属性 类型 描述

mounts

数组

mounts 表示卷在镜像构建容器中的位置。

mounts[]

对象

BuildVolumeMount 描述在 buildah 的运行时环境中挂载卷。

name

字符串

name 是此 BuildVolume 的唯一标识符。它必须符合 Kubernetes DNS 标签标准,并且在 Pod 内必须唯一。与构建控制器添加的名称冲突的名称将导致构建失败,并显示详细说明哪个名称导致错误的错误消息。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

source

对象

BuildVolumeSource 表示要挂载的卷的来源。任何给定时间只能指定其支持类型之一。

.spec.strategy.sourceStrategy.volumes[].mounts

描述

mounts 表示卷在镜像构建容器中的位置。

类型

数组

.spec.strategy.sourceStrategy.volumes[].mounts[]

描述

BuildVolumeMount 描述在 buildah 的运行时环境中挂载卷。

类型

对象

必需
  • destinationPath

属性 类型 描述

destinationPath

字符串

destinationPath 是应挂载卷的 buildah 运行时环境中的路径。构建镜像中的临时挂载和后备卷都将以只读方式挂载。必须是绝对路径,不能包含 '..' 或 ':',并且不能与构建器进程生成的目的地路径冲突。与构建控制器添加的路径冲突的路径将导致构建失败,并显示详细说明哪个路径导致错误的错误消息。

.spec.strategy.sourceStrategy.volumes[].source

描述

BuildVolumeSource 表示要挂载的卷的来源。任何给定时间只能指定其支持类型之一。

类型

对象

必需
  • type

属性 类型 描述

configMap

ConfigMapVolumeSource_v2

configMap 表示应填充此卷的 ConfigMap。

csi

CSIVolumeSource

csi 表示由支持此功能的外部 CSI 驱动程序提供的短暂存储。

secret

SecretVolumeSource_v2

secret 表示应填充此卷的 Secret。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

type

字符串

type 是卷源的 BuildVolumeSourceType。类型必须与填充的卷源匹配。有效类型为:Secret、ConfigMap。

.spec.triggers

描述

triggers 确定如何从 BuildConfig 启动新的构建。如果未定义触发器,则新的构建只能作为显式客户端构建创建的结果发生。

类型

数组

.spec.triggers[]

描述

BuildTriggerPolicy 描述了导致新构建的单个触发器的策略。

类型

对象

必需
  • type

属性 类型 描述

bitbucket

对象

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

generic

对象

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

github

对象

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

gitlab

对象

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

imageChange

对象

ImageChangeTrigger 允许在 ImageStream 更改时触发构建。

type

字符串

type 是构建触发器的类型。有效值

- GitHub GitHubWebHookBuildTriggerType 代表一个在 GitHub webhook 调用时启动构建的触发器。

- Generic GenericWebHookBuildTriggerType 代表一个在通用 webhook 调用时启动构建的触发器。

- GitLab GitLabWebHookBuildTriggerType 代表一个在 GitLab webhook 调用时启动构建的触发器。

- Bitbucket BitbucketWebHookBuildTriggerType 代表一个在 Bitbucket webhook 调用时启动构建的触发器。

- ImageChange ImageChangeBuildTriggerType 代表一种触发器,它会在新版本镜像可用时启动构建。

- ConfigChange ConfigChangeBuildTriggerType 将在初始构建配置创建时触发构建。警告:将来此行为将更改为在任何配置更改时触发构建。

.spec.triggers[].bitbucket

描述

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

类型

对象

属性 类型 描述

allowEnv

布尔值

allowEnv 决定 Webhook 是否可以设置环境变量;只能针对 GenericWebHook 设置为 true。

secret

字符串

用于验证请求的密钥。已弃用:请改用 SecretReference。

secretReference

对象

SecretLocalReference 包含指向正在使用的本地密钥的信息。

.spec.triggers[].bitbucket.secretReference

描述

SecretLocalReference 包含指向正在使用的本地密钥的信息。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 是正在引用的同一命名空间中资源的名称。

.spec.triggers[].generic

描述

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

类型

对象

属性 类型 描述

allowEnv

布尔值

allowEnv 决定 Webhook 是否可以设置环境变量;只能针对 GenericWebHook 设置为 true。

secret

字符串

用于验证请求的密钥。已弃用:请改用 SecretReference。

secretReference

对象

SecretLocalReference 包含指向正在使用的本地密钥的信息。

.spec.triggers[].generic.secretReference

描述

SecretLocalReference 包含指向正在使用的本地密钥的信息。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 是正在引用的同一命名空间中资源的名称。

.spec.triggers[].github

描述

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

类型

对象

属性 类型 描述

allowEnv

布尔值

allowEnv 决定 Webhook 是否可以设置环境变量;只能针对 GenericWebHook 设置为 true。

secret

字符串

用于验证请求的密钥。已弃用:请改用 SecretReference。

secretReference

对象

SecretLocalReference 包含指向正在使用的本地密钥的信息。

.spec.triggers[].github.secretReference

描述

SecretLocalReference 包含指向正在使用的本地密钥的信息。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 是正在引用的同一命名空间中资源的名称。

.spec.triggers[].gitlab

描述

WebHookTrigger 是一个使用 Webhook 类型的 post 调用的触发器。

类型

对象

属性 类型 描述

allowEnv

布尔值

allowEnv 决定 Webhook 是否可以设置环境变量;只能针对 GenericWebHook 设置为 true。

secret

字符串

用于验证请求的密钥。已弃用:请改用 SecretReference。

secretReference

对象

SecretLocalReference 包含指向正在使用的本地密钥的信息。

.spec.triggers[].gitlab.secretReference

描述

SecretLocalReference 包含指向正在使用的本地密钥的信息。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 是正在引用的同一命名空间中资源的名称。

.spec.triggers[].imageChange

描述

ImageChangeTrigger 允许在 ImageStream 更改时触发构建。

类型

对象

属性 类型 描述

from

ObjectReference

from 是对 ImageStreamTag 的引用,更新时将触发构建。它是可选的。如果未指定 From,则将使用构建策略中的 From 镜像。构建配置中只允许一个带有空 From 引用的 ImageChangeTrigger。

lastTriggeredImageID

字符串

lastTriggeredImageID 由 ImageChangeController 内部使用,用于保存构建的上次使用的镜像 ID。此字段已弃用,将在未来版本中删除。已弃用。

paused

布尔值

如果此触发器暂时禁用,则 paused 为 true。可选。

.status

描述

BuildConfigStatus 包含构建配置对象的当前状态。

类型

对象

必需
  • lastVersion

属性 类型 描述

imageChangeTriggers

数组

ImageChangeTriggers 捕获 BuildConfigSpec 中指定的任何 ImageChangeTrigger 的运行时状态,包括 OpenShift APIServer 为 lastTriggeredImageID 调和的值。此数组中每个镜像更改触发器都有一条条目。每个触发器状态都引用充当触发器源的 ImageStreamTag。

imageChangeTriggers[]

对象

ImageChangeTriggerStatus 跟踪 BuildConfigSpec.Triggers 结构中指定的关联 ImageChangeTrigger 策略的最新已解析状态。

lastVersion

整数

lastVersion 用于告知上次触发的构建数量。

.status.imageChangeTriggers

描述

ImageChangeTriggers 捕获 BuildConfigSpec 中指定的任何 ImageChangeTrigger 的运行时状态,包括 OpenShift APIServer 为 lastTriggeredImageID 调和的值。此数组中每个镜像更改触发器都有一条条目。每个触发器状态都引用充当触发器源的 ImageStreamTag。

类型

数组

.status.imageChangeTriggers[]

描述

ImageChangeTriggerStatus 跟踪 BuildConfigSpec.Triggers 结构中指定的关联 ImageChangeTrigger 策略的最新已解析状态。

类型

对象

属性 类型 描述

from

对象

ImageStreamTagReference 通过命名空间和名称引用镜像更改触发器中的 ImageStreamTag。

lastTriggerTime

时间

lastTriggerTime 是此特定 ImageStreamTag 触发构建启动的最后时间。仅当此触发器专门启动构建时,才会更新此字段。

lastTriggeredImageID

字符串

lastTriggeredImageID 表示启动此 BuildConfig 的构建时的 ImageStreamTag 的 sha/id。每次启动此 BuildConfig 的构建时都会更新 lastTriggeredImageID,即使此 ImageStreamTag 不是启动构建的原因。

.status.imageChangeTriggers[].from

描述

ImageStreamTagReference 通过命名空间和名称引用镜像更改触发器中的 ImageStreamTag。

类型

对象

属性 类型 描述

name

字符串

name 是 ImageChangeTrigger 的 ImageStreamTag 的名称。

namespace

字符串

namespace 是 ImageChangeTrigger 的 ImageStreamTag 所在的命名空间。

API 端点

提供以下 API 端点:

  • /apis/build.openshift.io/v1/buildconfigs

    • GET:列出或监视 BuildConfig 类型对象。

  • /apis/build.openshift.io/v1/watch/buildconfigs

    • GET:监视对 BuildConfig 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /apis/build.openshift.io/v1/namespaces/{namespace}/buildconfigs

    • DELETE:删除 BuildConfig 集合。

    • GET:列出或监视 BuildConfig 类型对象。

    • POST:创建一个 BuildConfig。

  • /apis/build.openshift.io/v1/watch/namespaces/{namespace}/buildconfigs

    • GET:监视对 BuildConfig 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /apis/build.openshift.io/v1/namespaces/{namespace}/buildconfigs/{name}

    • DELETE:删除一个 BuildConfig。

    • GET:读取指定的 BuildConfig。

    • PATCH:部分更新指定的 BuildConfig。

    • PUT:替换指定的 BuildConfig。

  • /apis/build.openshift.io/v1/watch/namespaces/{namespace}/buildconfigs/{name}

    • GET:监视 BuildConfig 类型对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。

/apis/build.openshift.io/v1/buildconfigs

HTTP 方法

GET

描述

列出或监视 BuildConfig 类型对象。

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

BuildConfigList 模式

401 - 未授权

/apis/build.openshift.io/v1/watch/buildconfigs

HTTP 方法

GET

描述

监视对 BuildConfig 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/build.openshift.io/v1/namespaces/{namespace}/buildconfigs

HTTP 方法

DELETE

描述

删除 BuildConfig 集合。

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

表 4. HTTP 响应
HTTP 代码 响应体

200 - OK

Status_v4 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 BuildConfig 类型对象。

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

BuildConfigList 模式

401 - 未授权

HTTP 方法

POST

描述

创建一个 BuildConfig。

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默丢弃的未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 7. 体参数
参数 类型 描述

body

BuildConfig 模式

表 8. HTTP 响应
HTTP 代码 响应体

200 - OK

BuildConfig 模式

201 - 已创建

BuildConfig 模式

202 - 已接受

BuildConfig 模式

401 - 未授权

/apis/build.openshift.io/v1/watch/namespaces/{namespace}/buildconfigs

HTTP 方法

GET

描述

监视对 BuildConfig 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/build.openshift.io/v1/namespaces/{namespace}/buildconfigs/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

BuildConfig 的名称

HTTP 方法

DELETE

描述

删除一个 BuildConfig。

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

Status_v4 模式

202 - 已接受

Status_v4 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 BuildConfig。

表 13. HTTP 响应
HTTP 代码 响应体

200 - OK

BuildConfig 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 BuildConfig。

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默丢弃的未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

BuildConfig 模式

201 - 已创建

BuildConfig 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 BuildConfig。

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默丢弃的未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 17. 体参数
参数 类型 描述

body

BuildConfig 模式

表 18. HTTP 响应
HTTP 代码 响应体

200 - OK

BuildConfig 模式

201 - 已创建

BuildConfig 模式

401 - 未授权

/apis/build.openshift.io/v1/watch/namespaces/{namespace}/buildconfigs/{name}

表 19. 全局路径参数
参数 类型 描述

name

字符串

BuildConfig 的名称

HTTP 方法

GET

描述

监视 BuildConfig 类型对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权