1.4. ビルドのパラメーター値の定義
Build CR でビルドストラテジーパラメーターの値を指定できます。パラメーター値を指定することで、ビルドストラテジーのステップがどのように機能するかを制御できます。BuildRun リソースの値を上書きすることもできます。
すべてのパラメーターに、値を直接指定するか、config map またはシークレットの参照キーを使用して指定する必要があります。
ビルドストラテジーのステップでパラメーターを使用すると、config map とシークレットの使用が制限されます。config map とシークレットは、パラメーターがコマンド、引数、または環境変数で使用されている場合にのみ使用できます。
Build CR で paramValues フィールドを使用する場合は、次のシナリオを避けてください。
-
BuildStrategyCR で定義されているspec.parametersの 1 つと一致しないspec.paramValues名を指定する。 -
Shipwright 予約パラメーターと競合する
spec.paramValues名を指定する。このようなパラメーターには、BUILDER_IMAGE、CONTEXT_DIR、およびshp-で始まるすべての名前などが含まれます。
また、Build CR の paramValues フィールドを定義する前に、ストラテジーの内容を確認してください。
1.4.1. パラメーター値を定義する設定例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、ビルドストラテジーでパラメーターを定義し、Build CR を使用して、このようなパラメーターに値を割り当てる方法を示しています。Build CR に含まれる array タイプのパラメーターに値を割り当てることもできます。
例: 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 の array 型のパラメーターに値を割り当てる
array 型のパラメーターに値を代入できます。buildah ストラテジーを使用する場合は、registries-search パラメーターを定義して、特定のレジストリー内のイメージを検索できます。次の例は、registries-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:
# ...
例: Build CR でのシークレットの参照
以下の例のように、registries-block 配列パラメーターのシークレットを参照できます。
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:
name: registry-configuration
key: reg-blocked
strategy:
name: buildah
kind: ClusterBuildStrategy
output:
# ...
- 1
- この値はシークレットを参照します。