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_IMAGECONTEXT_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
この値はシークレットを参照します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.