第 4 章 Build [config.openshift.io/v1]
- 描述
- build 配置整个集群的 OpenShift 构建的行为。这包括可在 BuildConfig 对象中覆盖的默认设置,以及应用到所有构建的覆盖。规范名称是"集群"兼容性级别 1:在主发行版本中至少为 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
spec
-
4.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 包含构建控制器配置的 user-settable 值 |
4.1.1. .spec
- 描述
- spec 包含构建控制器配置的 user-settable 值
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| additionalTrustedCA 是对包含额外 CA 的 ConfigMap 的引用,该 CA 应该信任在构建期间进行镜像推送和拉取。此配置映射的命名空间是 openshift-config。DEPRECATED :应在 image.config.openshift.io/cluster 上设置镜像拉取(pull)和推送的额外 CA。 |
|
| buildDefaults 控制构建的默认信息 |
|
| buildOverrides 控制构建的覆盖设置 |
4.1.2. .spec.additionalTrustedCA
- 描述
- additionalTrustedCA 是对包含额外 CA 的 ConfigMap 的引用,该 CA 应该信任在构建期间进行镜像推送和拉取。此配置映射的命名空间是 openshift-config。DEPRECATED :应在 image.config.openshift.io/cluster 上设置镜像拉取(pull)和推送的额外 CA。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的配置映射的 metadata.name |
4.1.3. .spec.buildDefaults
- 描述
- buildDefaults 控制构建的默认信息
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
defaultProxy 包含所有构建操作的默认代理设置,包括镜像拉取/推送和源下载。通过在构建配置的策略中设置 |
|
| env 是一组默认环境变量,如果构建中不存在指定变量,则会应用到构建 |
|
| EnvVar 代表容器中存在的环境变量。 |
|
| gitProxy 仅包含 git 操作的代理设置。如果设置,这将覆盖所有 git 命令的任何代理设置,如 git clone。此处未设置的值将从 DefaultProxy 继承。 |
|
| imageLabels 是应用到生成的镜像的 docker 标签列表。用户可以通过在其 Build/BuildConfig 中提供名称相同的标签来覆盖默认标签。 |
|
| |
|
| 资源定义执行构建的资源要求。 |
4.1.4. .spec.buildDefaults.defaultProxy
- 描述
-
defaultProxy 包含所有构建操作的默认代理设置,包括镜像拉取/推送和源下载。通过在构建配置的策略中设置
HTTP_PROXY
、HTTPS_PROXY
和NO_PROXY
环境变量,可以覆盖值。 - 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| httpProxy 是 HTTP 请求的代理 URL。空表示未设置,不会导致 env var。 |
|
| httpsProxy 是 HTTPS 请求的代理 URL。空表示未设置,不会导致 env var。 |
|
| noProxy 是不应使用代理的主机名和/或 CIDR 和/或 IP 的逗号分隔列表。空表示未设置,不会导致 env var。 |
|
| readinessEndpoints 是用于验证代理的就绪状态的端点列表。 |
|
| trustedCA 是对包含 CA 证书捆绑包的 ConfigMap 的引用。trustedCA 字段应当仅由代理验证器使用。验证器负责从所需的键 "ca-bundle.crt" 中读取证书捆绑包,将其与系统默认信任捆绑包合并,并在 "openshift-config-managed" 命名空间中写入名为 "trusted-ca-bundle" 的 ConfigMap 中。希望进行代理连接的客户端必须将 trusted-ca-bundle 用于代理的所有 HTTPS 请求,并将 trusted-ca-bundle 用于非代理 HTTPS 请求。被 trustedCA 引用的 ConfigMap 的命名空间为 "openshift-config"。以下是一个 ConfigMap 示例(在 yaml 中): apiVersion: v1 kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- Custom CA certificate bundle. -----END CERTIFICATE----- |
4.1.5. .spec.buildDefaults.defaultProxy.trustedCA
- 描述
- trustedCA 是对包含 CA 证书捆绑包的 ConfigMap 的引用。trustedCA 字段应当仅由代理验证器使用。验证器负责从所需的键 "ca-bundle.crt" 中读取证书捆绑包,将其与系统默认信任捆绑包合并,并在 "openshift-config-managed" 命名空间中写入名为 "trusted-ca-bundle" 的 ConfigMap 中。希望进行代理连接的客户端必须将 trusted-ca-bundle 用于代理的所有 HTTPS 请求,并将 trusted-ca-bundle 用于非代理 HTTPS 请求。被 trustedCA 引用的 ConfigMap 的命名空间为 "openshift-config"。以下是一个 ConfigMap 示例(在 yaml 中): apiVersion: v1 kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config data: ca-bundle.crt: \| -----BEGIN CERTIFICATE----- Custom CA certificate bundle. -----END CERTIFICATE-----
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的配置映射的 metadata.name |
4.1.6. .spec.buildDefaults.env
- 描述
- env 是一组默认环境变量,如果构建中不存在指定变量,则会应用到构建
- 类型
-
array
4.1.7. .spec.buildDefaults.env[]
- 描述
- EnvVar 代表容器中存在的环境变量。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 环境变量的名称。必须是 C_IDENTIFIER。 |
|
| 变量引用 $(VAR_NAME)使用容器中之前定义的环境变量以及任何服务环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双引号被缩减为单个 $,它允许转义 $(VAR_NAME)语法:即 " (VAR_NAME) " 将生成字符串 literal "$(VAR_NAME) "。转义的引用永远不会扩展,无论变量是否存在。默认为 ""。 |
|
| 环境变量的值的源。如果值不为空,则无法使用。 |
4.1.8. .spec.buildDefaults.env[].valueFrom
- 描述
- 环境变量的值的源。如果值不为空,则无法使用。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 选择 ConfigMap 的键。 |
|
|
选择 pod 的字段:支持 metadata.name、metadata.namespace、 |
|
| 选择容器的资源:当前仅支持资源限值和请求(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage)。 |
|
| 在 pod 命名空间中选择 secret 的键 |
4.1.9. .spec.buildDefaults.env[].valueFrom.configMapKeyRef
- 描述
- 选择 ConfigMap 的键。
- 类型
-
object
- 必填
-
key
-
属性 | 类型 | 描述 |
---|---|---|
|
| 要选择的密钥。 |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid? |
|
| 指定是否必须定义 ConfigMap 还是其键 |
4.1.10. .spec.buildDefaults.env[].valueFrom.fieldRef
- 描述
-
选择 pod 的字段:支持 metadata.name、metadata.namespace、
metadata.labels['<KEY>']
,metadata.annotations['<KEY>']
, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - 类型
-
object
- 必填
-
fieldPath
-
属性 | 类型 | 描述 |
---|---|---|
|
| 模式的版本是按术语编写的 FieldPath,默认为 "v1"。 |
|
| 在指定 API 版本中选择的字段路径。 |
4.1.11. .spec.buildDefaults.env[].valueFrom.resourceFieldRef
- 描述
- 选择容器的资源:当前仅支持资源限值和请求(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage)。
- 类型
-
object
- 必填
-
resource
-
属性 | 类型 | 描述 |
---|---|---|
|
| 容器名称:卷需要,对于 env vars是可选的 |
|
| 指定公开资源的输出格式,默认为 "1" |
|
| 必需:要选择的资源 |
4.1.12. .spec.buildDefaults.env[].valueFrom.secretKeyRef
- 描述
- 在 pod 命名空间中选择 secret 的键
- 类型
-
object
- 必填
-
key
-
属性 | 类型 | 描述 |
---|---|---|
|
| 要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。 |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid? |
|
| 指定是否需要定义 Secret 还是其密钥 |
4.1.13. .spec.buildDefaults.gitProxy
- 描述
- gitProxy 仅包含 git 操作的代理设置。如果设置,这将覆盖所有 git 命令的任何代理设置,如 git clone。此处未设置的值将从 DefaultProxy 继承。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| httpProxy 是 HTTP 请求的代理 URL。空表示未设置,不会导致 env var。 |
|
| httpsProxy 是 HTTPS 请求的代理 URL。空表示未设置,不会导致 env var。 |
|
| noProxy 是不应使用代理的主机名和/或 CIDR 和/或 IP 的逗号分隔列表。空表示未设置,不会导致 env var。 |
|
| readinessEndpoints 是用于验证代理的就绪状态的端点列表。 |
|
| trustedCA 是对包含 CA 证书捆绑包的 ConfigMap 的引用。trustedCA 字段应当仅由代理验证器使用。验证器负责从所需的键 "ca-bundle.crt" 中读取证书捆绑包,将其与系统默认信任捆绑包合并,并在 "openshift-config-managed" 命名空间中写入名为 "trusted-ca-bundle" 的 ConfigMap 中。希望进行代理连接的客户端必须将 trusted-ca-bundle 用于代理的所有 HTTPS 请求,并将 trusted-ca-bundle 用于非代理 HTTPS 请求。被 trustedCA 引用的 ConfigMap 的命名空间为 "openshift-config"。以下是一个 ConfigMap 示例(在 yaml 中): apiVersion: v1 kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- Custom CA certificate bundle. -----END CERTIFICATE----- |
4.1.14. .spec.buildDefaults.gitProxy.trustedCA
- 描述
- trustedCA 是对包含 CA 证书捆绑包的 ConfigMap 的引用。trustedCA 字段应当仅由代理验证器使用。验证器负责从所需的键 "ca-bundle.crt" 中读取证书捆绑包,将其与系统默认信任捆绑包合并,并在 "openshift-config-managed" 命名空间中写入名为 "trusted-ca-bundle" 的 ConfigMap 中。希望进行代理连接的客户端必须将 trusted-ca-bundle 用于代理的所有 HTTPS 请求,并将 trusted-ca-bundle 用于非代理 HTTPS 请求。被 trustedCA 引用的 ConfigMap 的命名空间为 "openshift-config"。以下是一个 ConfigMap 示例(在 yaml 中): apiVersion: v1 kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config data: ca-bundle.crt: \| -----BEGIN CERTIFICATE----- Custom CA certificate bundle. -----END CERTIFICATE-----
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的配置映射的 metadata.name |
4.1.15. .spec.buildDefaults.imageLabels
- 描述
- imageLabels 是应用到生成的镜像的 docker 标签列表。用户可以通过在其 Build/BuildConfig 中提供名称相同的标签来覆盖默认标签。
- 类型
-
array
4.1.16. .spec.buildDefaults.imageLabels[]
- 描述
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 定义标签的名称。它必须具有非零长度。 |
|
| value 定义标签的字面值。 |
4.1.17. .spec.buildDefaults.resources
- 描述
- 资源定义执行构建的资源要求。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| claim 列出此容器使用的 spec.resourceClaims 中定义的资源名称。这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。此字段不可变。 |
|
| ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。 |
|
| 限制描述了允许的最大计算资源量。更多信息: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
|
| Requests 描述了所需的最少计算资源。如果容器省略了 Requests,则默认为 Limits (如果明确指定),否则默认为实现定义的值。更多信息: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
4.1.18. .spec.buildDefaults.resources.claims
- 描述
- claim 列出此容器使用的 spec.resourceClaims 中定义的资源名称。这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。此字段不可变。
- 类型
-
数组
4.1.19. .spec.buildDefaults.resources.claims[]
- 描述
- ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它允许容器内部使用该资源。 |
4.1.20. .spec.buildOverrides
- 描述
- buildOverrides 控制构建的覆盖设置
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| forcePull 覆盖(如果设置了)构建中的等效值,即 false 会禁用对所有构建的强制拉取,true 会独立于每个构建指定其自身的强制拉取 |
|
| imageLabels 是应用到生成的镜像的 docker 标签列表。如果用户在其 Build/BuildConfig 中提供了与此列表中名称相同的标签,则用户的标签将被覆盖。 |
|
| |
|
| nodeSelector 是一个选择器,必须为 true 才能使构建 pod 适合节点 |
|
| tolerations (toleration)是一个 Tolerations 列表,它将覆盖构建 pod 上任何现有的容限集。 |
|
| 此 Toleration 附加到 pod,以使用匹配的 operator <operator> 容许与 triple <key,value,effect> 匹配的任何污点。 |
4.1.21. .spec.buildOverrides.imageLabels
- 描述
- imageLabels 是应用到生成的镜像的 docker 标签列表。如果用户在其 Build/BuildConfig 中提供了与此列表中名称相同的标签,则用户的标签将被覆盖。
- 类型
-
array
4.1.22. .spec.buildOverrides.imageLabels[]
- 描述
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 定义标签的名称。它必须具有非零长度。 |
|
| value 定义标签的字面值。 |
4.1.23. .spec.buildOverrides.tolerations
- 描述
- tolerations (toleration)是一个 Tolerations 列表,它将覆盖构建 pod 上任何现有的容限集。
- 类型
-
array
4.1.24. .spec.buildOverrides.tolerations[]
- 描述
- 此 Toleration 附加到 pod,以使用匹配的 operator <operator> 容许与 triple <key,value,effect> 匹配的任何污点。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| effect 表示要匹配的污点效果。空意味着匹配所有污点效果。指定后,允许的值为 NoSchedule,PreferNoSchedule 和 NoExecute。 |
|
| key 是容限应用到的污点键。empty 表示与所有污点键匹配。如果键为空,则必须存在运算符;组合意味着匹配所有值和所有键。 |
|
| Operator 代表键与值的关系。有效的运算符是 Exists 和 Equal。默认值为 Equal。exists 等同于值的通配符,以便 pod 可以容忍特定类别的所有污点。 |
|
| tolerationSeconds 代表容限的期间(必须生效 NoExecute,否则此字段将被忽略)可以容忍污点。默认情况下,它不会被设置,这意味着容许任何污点(不要驱除)。零值和负值将被视为 0 (立即删除)。 |
|
| value 是容限匹配的污点值。如果运算符是 Exists,则该值应该为空,否则仅是一个常规字符串。 |