第 2 章 配置构建策略
在 BuildStrategy
或 ClusterBuildStrategy
自定义资源(CR)中,您可以定义策略参数、系统参数、步骤资源定义、注解和卷来配置构建策略。BuildStrategy
资源可用于命名空间中,并且集群中可以使用 ClusterBuildStrategy
资源。
要配置构建策略,请创建一个 BuildStrategy
或 ClusterBuildStrategy
资源 YAML 文件,并将其应用到 OpenShift Container Platform 集群。
2.1. 策略参数定义
您可以在 BuildStrategy
或 ClusterBuildStrategy
自定义资源(CR)中定义策略参数,并在 Build
或 BuildRun
CR 中定义这些参数的值。您还可以在构建时配置或修改策略参数。
在为您的策略定义参数前请考虑以下点:
-
在构建策略 CR 的
spec.parameters
字段中定义参数列表。每个列表项包含名称、描述、类型和可选的默认值,或是数组类型的值。如果没有设置默认值,则必须在Build
或BuildRun
CR 中定义值。 -
在构建策略的
spec.steps
字段中定义字符串或数组类型的参数。 使用
$(params.your-parameter-name)
语法指定字符串类型的参数。您可以在Build
或BuildRun
CR 中为your-parameter-name
参数设置一个值,以引用您的策略。您可以根据您的需要定义以下字符串参数:表 2.1. 字符串参数 参数 描述 image
使用此参数定义自定义标签,如
golang:$(params.go-version)
args
使用此参数将数据传递给构建器命令
env
使用此参数为环境变量提供值
使用
$(params.your-array-parameter-name[*])
语法指定数组类型的参数。指定阵列后,您可以在参数或命令中使用它。对于数组中的每个项目,将设置一个参数。以下示例使用构建策略的spec.steps
字段中的一个数组参数:apiVersion: shipwright.io/v1beta1 kind: ClusterBuildStrategy metadata: name: <cluster_build_strategy_name> # ... spec: parameters: - name: tool-args description: Parameters for the tool type: array steps: - name: a-step command: - some-tool args: - --tool-args - $(params.tool-args[*])
-
将参数值作为简单字符串提供,或作为配置映射或 secret 中键的引用。对于参数,只有在
spec.steps
字段的命令
、args
或env
部分中定义了配置映射或 secret 值时,才能使用它。