Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第31章 グローバルビルドのデフォルトと上書きの設定

31.1. 概要

開発者はプロジェクト内の特定のビルド設定において、Git クローン作成のためのプロキシー設定 などの設定を定義することができます。開発者に特定の設定をそれぞれのビルド設定で定義するように要求するのではなく、管理者が受付制御プラグインを使用して、すべてのビルドでこの設定を自動的に使用するグローバルビルドのデフォルトと上書きを設定することができます。

これらのプラグインから取得した設定は、ビルドプロセス時に使用されるだけで、ビルド設定やビルド自体で設定されません。プラグインでの設定を使用することで、管理者はグローバル設定をいつでも変更することができ、既存のビルド設定またはビルドから実行されたビルドに、新規設定が割り当てられます。

  • BuildDefaults 受付制御プラグインを使用すると、管理者は Git HTTP や HTTPS プロキシーなどの設定についてのグローバルなデフォルトと、デフォルトの環境変数を設定することができます。これらのデフォルトによって、特定のビルド用に設定された値が上書きされることはありません。ただし、それらの値がビルド定義に存在しない場合は、デフォルト値に設定されます。
  • BuildOverrides 受付制御プラグインを使用すると、管理者はビルドに保存されている値に関係なく、ビルドの設定を上書きできます。

    現時点では、このプラグインには、ビルド時にレジストリーからのローカルイメージが強制的に更新されるように、ビルドストラテジーの forcePull フラグを上書き するサポートがあります。つまり、ビルドの開始時にアクセスチェックがイメージで実行され、ユーザーがプルできるイメージでしかビルドできないようにします。強制的に更新され、ビルドにマルチテナンシーが提供されます。ただし、ビルドノードに保存されているイメージのローカルキャッシュは依存せず、常にレジストリーにアクセスできるようにする必要があります。

    このプラグインは、イメージラベルセットが全ビルドイメージに適用されるように設定することも可能です。

    BuildOverrides の受付制御プラグインと上書き可能な値の設定に関する情報は、グローバルビルドの上書きの手動設定 を参照してください。

デフォルトのノードセレクターおよび BuildDefaults または BuildOverrides 受付プラグインは以下のように連携します。

  • マスター設定ファイルの projectConfig.defaultNodeSelector フィールドに定義されているデフォルトのプロジェクトノードセレクターは、指定の nodeSelector 値なしに、全プロジェクトに作成済みの Pod に適用されます。これらの設定は、BuildDefaults または BuildOverrides ノードセレクターが設定されていないクラスターで、nodeSelector="null" が指定されているビルドに適用されます。
  • nodeSelector="null" パラメーターがビルド設定に設定されている場合のみ、クラスター全体のデフォルトのビルドノードセレクター admissionConfig.pluginConfig.BuildDefaults.configuration.nodeSelector が適用されます。nodeSelector=null はデフォルト設定です。
  • デフォルトのプロジェクトまたはクラスター全体のノードセレクターの場合には、デフォルト設定がビルドのノードセレクターに AND として追加されます。このビルドのノードセレクターは、BuildDefaults または BuildOverride 受付プラグインで設定されます。これらの設定は、BuildOverrides ノードセレクターとプロジェクトのデフォルトノードセレクターの条件を満たすノードに対してのみスケジューリングされるという意味です。

    注記

    RunOnceDuration プラグイン を使用することで、ビルド Pod の実行時間のハード制限を定義できます。