1.4. ビルドのパラメーター値の定義
Build
CR でビルドストラテジーパラメーターの値を指定できます。パラメーター値を指定することで、ビルドストラテジーのステップがどのように機能するかを制御できます。BuildRun
リソースの値を上書きすることもできます。
すべてのパラメーターに、値を直接指定するか、config map またはシークレットの参照キーを使用して指定する必要があります。
ビルドストラテジーのステップでパラメーターを使用すると、config map とシークレットの使用が制限されます。config map とシークレットは、パラメーターがコマンド、引数、または環境変数で使用されている場合にのみ使用できます。
Build
CR で paramValues
フィールドを使用する場合は、次のシナリオを避けてください。
-
BuildStrategy
CR で定義されている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: 1
name: registry-configuration
key: reg-blocked
strategy:
name: buildah
kind: ClusterBuildStrategy
output:
# ...
- 1
- この値はシークレットを参照します。