搜索

1.4. 构建的参数值定义

download PDF

您可以在 Build CR 中为构建策略参数指定值。通过指定参数值,您可以控制构建策略的工作方式。您还可以覆盖 BuildRun 资源中的值。

对于所有参数,您必须直接指定值,也可以使用配置映射或 secret 中的引用键指定值。

注意

在构建策略步骤中使用该参数限制了配置映射和 secret 的使用。只有命令、参数或环境变量中使用了参数时,才能使用配置映射和 secret。

Build CR 中使用 paramValues 字段时,请避免以下情况:

  • 指定与 BuildStrategy CR 中定义的 spec.parameters 之一不匹配的 spec.paramValues 名称。
  • 指定与 Shipwright 保留参数冲突的 spec.paramValues 名称。这些参数包括 BUILDER_IMAGECONTEXT_DIR 以及从 shp- 开始的任何名称。

另外,在 Build CR 中定义 paramValues 字段前,请确保了解您的策略的内容。

1.4.1. 定义参数值的配置示例

以下示例演示了如何在构建策略中定义参数,并使用 Build CR 为这些参数分配值。您还可以为 Build CR 中的 type 数组 的参数分配一个值。

示例:在 ClusterBuildStrategy CR 中定义参数

以下示例显示了定义几个参数的 ClusterBuildStrategy CR:

apiVersion: shipwright.io/v1beta1
kind: ClusterBuildStrategy
metadata:
  name: buildah
spec:
  parameters:
    - name: build-args
      description: "The values for the args in the Dockerfile. Values must be in the format KEY=VALUE."
      type: array
      defaults: []
    # ...
    - name: storage-driver
      description: "The storage driver to use, such as 'overlay' or 'vfs'."
      type: string
      default: "vfs"
# ...
steps:
# ...

示例:将值分配给 Build CR 中的参数

以上 ClusterBuildStrategy CR 定义了一个 storage-driver 参数,您可以在 Build CR 中指定 storage-driver 参数的值,如下例所示:

apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
  name: <your_build>
  namespace: <your_namespace>
spec:
  paramValues:
  - name: storage-driver
    value: "overlay"
  strategy:
    name: buildah
    kind: ClusterBuildStrategy
  output:
  # ...

示例:创建 ConfigMap CR 以集中控制参数

如果要将 storage-driver 参数用于多个构建并集中控制其使用,您可以创建一个 ConfigMap CR,如下例所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: buildah-configuration
  namespace: <your_namespace>
data:
  storage-driver: overlay

您可以使用创建的 ConfigMap CR 作为 Build CR 中的参数值,如下例所示:

apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
  name: <your_build>
  namespace: <your_namespace>
spec:
  paramValues:
  - name: storage-driver
    configMapValue:
      name: buildah-configuration
      key: storage-driver
  strategy:
    name: buildah
    kind: ClusterBuildStrategy
  output:
  # ...

示例:将值分配给 Build CR 中的 type 数组 的参数

您可以为类型 数组 的参数分配值。如果使用 buildah 策略,您可以定义一个 registry-search 参数来在特定 registry 中搜索镜像。以下示例演示了如何为 registry-search 数组参数分配值:

apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
  name: <your_build>
  namespace: <your_namespace>
spec:
  paramValues:
  - name: storage-driver
    configMapValue:
      name: buildah-configuration
      key: storage-driver
  - name: registries-search
    values:
    - value: registry.redhat.io
  strategy:
    name: buildah
    kind: ClusterBuildStrategy
  output:
  # ...

示例:在构建 CR 中引用 secret

您可以引用 registry-block 数组参数的 secret,如下例所示:

apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
  name: <your_build>
  namespace: <your_namespace>
spec:
  paramValues:
  - name: storage-driver
    configMapValue:
      name: buildah-configuration
      key: storage-driver
  - name: registries-block
    values:
    - secretValue: 1
        name: registry-configuration
        key: reg-blocked
  strategy:
    name: buildah
    kind: ClusterBuildStrategy
  output:
  # ...
1
该值引用一个 secret。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.