1.4. ビルドのパラメーター値の定義
ビルドストラテジーのパラメーターは、ビルド カスタムリソース (CR) で設定できます。これらの設定は、ビルドの実行方法を制御します。すべてのパラメーターには、値を指定する必要があります。値を直接指定することも、ConfigMaps または Secrets 内のキーを参照することもできます。
ConfigMaps または Secrets は、ビルドストラテジー内のコマンド、引数、または環境変数にパラメーターが含まれている場合にのみ使用できます。
ビルド時にパラメーター値定義を使用するための要件は以下のとおりです。
-
マッピング: すべての
spec.paramValues名は、BuildStrategyCR で定義されているパラメーターと一致する必要があります。 -
予約名:
BUILDER_IMAGE、CONTEXT_DIR、またはshp-で始まる名前などの予約名は使用しないでください。 -
リソース:
ConfigMapsまたはSecrets は、パラメーターがコマンド、引数、または環境変数で使用されている場合にのみ使用できます。
1.4.1. パラメーター値を定義する設定例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、ビルドストラテジーでパラメーターを設定する方法を示しています。カスタムリソース (CR) の作成機能 を使用すると、これらのパラメーターに特定の値を指定できます。配列パラメーターに値を割り当てることもできます。
- ClusterBuildStrategy CR でパラメーターを定義する
以下の例は、複数のパラメーターを持つ
ClusterBuildStrategyCR を示しています。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: # ...- ビルド CR 内のパラメーターに値を割り当てる
前の例で示したように、
ClusterBuildStrategyCR はストレージドライバーパラメーターを定義します。ビルド CR でその値を次のように変更できます。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: # ...各項目の説明:
<your_build>-
ビルドCR の名前を指定します。 <your_namespace>-
ビルドCR の名前空間を指定します。
- パラメーターを一元的に制御するための ConfigMap CR を作成する
-
複数のビルドで同じパラメーター値を使用するには、
ConfigMap を使用します。これにより、値を一箇所で変更し、その使用状況を一元的に管理することが可能になります。次の設定例を参照してください。
apiVersion: v1
kind: ConfigMap
metadata:
name: buildah-configuration
namespace: <your_namespace>
data:
storage-driver: overlay
+
各項目の説明:
<your_namespace>-
ConfigMapCR の名前空間を指定します。
+ 次の例に示すように、作成した 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:
# ...
+
各項目の説明:
metadata-
ビルドCR のメタデータを指定します。
- ビルド CR 内の配列型のパラメーターに値を割り当てる
配列
型のパラメーターに値を割り当てることもできます。たとえば、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: # ...各項目の説明:
metadata-
ビルドCR のメタデータを指定します。
- ビルド 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 - name: registries-block values: - secretValue: name: registry-configuration key: reg-blocked strategy: name: buildah kind: ClusterBuildStrategy output: # ...各項目の説明:
metadata-
ビルドCR のメタデータを指定します。 values.secretValue-
シークレットを参照する値を指定します。