Builds について
Builds の紹介
概要
第1章 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
リリースノートには、新機能、非推奨機能、互換性を損なう変更、既知の問題に関する情報が記載されています。以下のリリースノートは、OpenShift Container Platform の最新の Builds リリースが対象です。
Builds は、Shipwright プロジェクト に基づく拡張可能なビルドフレームワークで、OpenShift Container Platform クラスター上でコンテナーイメージを構築するために使用できます。Source-to-Image (S2I) や Buildah
などのイメージビルドツールを使用して、ソースコードおよび Dockerfile からコンテナーイメージをビルドできます。OpenShift Container Platform namespace で、ビルドリソースの作成と適用、ビルド実行のログの表示、ビルドの管理を行うことができます。
Builds には以下の機能が含まれます。
- ソースコードと Dockerfile からコンテナーイメージを構築するための標準 Kubernetes ネイティブ API
-
Source-to-Image (S2I) および
Buildah
ビルドストラテジーのサポート - 独自のカスタムビルドストラテジーによる拡張性
- ローカルディレクトリー内のソースコードからのビルドの実行
- Shipwright CLI によるログの作成と表示、およびクラスター上におけるビルドの管理
- OpenShift Container Platform Web コンソールの Developer パースペクティブと統合されたユーザーエクスペリエンス
Builds の詳細は、Builds の概要 を参照してください。
1.1. 互換性およびサポート表 リンクのコピーリンクがクリップボードにコピーされました!
以下の表では、コンポーネントを次のステータスで示しています。
TP | テクノロジープレビュー |
GA | 一般提供 |
テクノロジープレビュー 機能は実験的な機能であり、本番環境での使用を目的としたものではありません。
Builds バージョン | コンポーネントのバージョン | 互換性のある Openshift Pipeline バージョン | OpenShift バージョン | |
---|---|---|---|---|
Operator | Builds (Shipwright) | CLI | ||
1.0 | 0.12.0 (GA) | 0.12.0 (GA) | 1.12 以降 | 4.14 |
1.2. 多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
1.3. Builds 一般提供 (GA) 1.0 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
Builds 一般提供 (GA) 1.0 が OpenShift Container Platform 4.14 で利用可能になりました。
1.3.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、Builds 1.0 の主な新機能を説明します。
1.3.1.1. ビルド リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、
buildah
およびsource-to-image
ビルドストラテジーをサポートします。Builds for Red Hat OpenShift は、使用するこれらのストラテジーを自動的にインストールします。注記buildpacks
ビルドストラテジーは現在 Developer Preview 段階にあります。Red Hat は、このストラテジーを今後のリリースで一般利用できるようにする予定です。-
今回のリリースにより、
BuildStartegy
リソースでボリュームマウントを定義できるようになりました。ストラテジーを定義するときに、ビルドのステップおよびビルド実行で共有できるボリュームを宣言できます。すべてのビルドステップで固定されているボリュームのマウントポイントを宣言することもできます。ボリュームには、固定ボリュームソース、またはBuild
またはBuildRun
リソースで設定できるオーバーライド可能なボリュームソースのいずれかを含めることができます。 -
このリリースでは、
spec.build.spec
フィールドを使用して、完全なビルド仕様をBuildRun
リソースに埋め込むことができます。仕様を埋め込むことで、専用のBuild
カスタムリソースを作成および維持することなく、イメージをビルドできます。 - このリリースでは、特定の時間後、または特定のビルド実行数に達したときに、完了済みのビルド実行を自動クリーニングする機能がサポートされています。保持パラメーターを使用すると、完了したビルド実行が存在できる期間と、存在できる成功ビルドまたは失敗ビルドの実行数を指定できます。
-
今回のリリースでは、ソース、ビルドストラテジー、パラメーター値、ビルダーまたは Dockerfile、出力、保持パラメーター、およびボリュームを
Build
リソースで定義することにより、ビルドを設定できます。 -
このリリースでは、
BuildStrategy
またはClusterBuildStrategy
リソースでストラテジパラメーター、システムパラメーター、ステップリソース定義、アノテーション、およびボリュームを定義することにより、ビルドストラテジを設定できます。 - 今回のリリースでは、ビルド参照、ビルド仕様、パラメーター値、サービスアカウント、出力、保持パラメーター、およびボリュームを定義してビルド実行を設定できるようになりました。
- 今回のリリースでは、ビルドコントローラーメトリクスを使用してビルドリソースを監視できます。
-
今回のリリースでは、ビルドシークレットに
build.shipwright.io/referenced.secret: "true"
アノテーションを追加できます。このアノテーションに基づいて、ビルドコントローラーは、ビルドシークレットの作成、更新、削除などのイベントがトリガーされたときに調整アクションを実行します。
1.3.1.2. CLI リンクのコピーリンクがクリップボードにコピーされました!
-
今回のリリースでは、
Build
リソースを作成、削除、一覧表示、または実行できます。 -
今回のリリースでは、
BuildRun
リソースを作成または一覧表示したり、そのログを表示したりできるようになりました。
第2章 Builds の概要 リンクのコピーリンクがクリップボードにコピーされました!
Builds は、Shipwright プロジェクト に基づく拡張可能なビルドフレームワークで、OpenShift Container Platform クラスター上でコンテナーイメージを構築するために使用できます。Source-to-Image (S2I) や Buildah
などのイメージビルドツールを使用して、ソースコードおよび Dockerfile からコンテナーイメージをビルドできます。OpenShift Container Platform namespace で、ビルドリソースの作成と適用、ビルド実行のログの表示、ビルドの管理を行うことができます。
Builds には以下の機能が含まれます。
- ソースコードと Dockerfile からコンテナーイメージを構築するための標準 Kubernetes ネイティブ API
-
Source-to-Image (S2I) および
Buildah
ビルドストラテジーのサポート - 独自のカスタムビルドストラテジーによる拡張性
- ローカルディレクトリー内のソースコードからのビルドの実行
- Shipwright CLI によるログの作成と表示、およびクラスター上におけるビルドの管理
- OpenShift Container Platform Web コンソールの Developer パースペクティブと統合されたユーザーエクスペリエンス
Builds は以下のカスタムリソース (CR) で構成します。
-
Build
-
BuildStrategy
およびClusterBuildStrategy
-
BuildRun
2.1. Build リソース リンクのコピーリンクがクリップボードにコピーされました!
Build
リソースは、アプリケーションのソースコードと、アプリケーションイメージをプッシュする場所を定義します。次の例は、Git ソース、ビルドストラテジー、出力イメージで構成される単純なビルドを示しています。
また、Build
リソースを拡張してイメージをプライベートレジストリーにプッシュしたり、Dockerfile ファイルを使用したりすることもできます。
2.2. BuildStrategy および ClusterBuildStrategy リソース リンクのコピーリンクがクリップボードにコピーされました!
BuildStrategy
および ClusterBuildStrategy
リソースは、アプリケーションをアセンブルする一連のステップを定義します。namespace では BuildStrategy
リソースを使用でき、クラスターでは ClusterBuildStrategy
リソースを使用できます。
BuildStrategy
または ClusterBuildStrategy
リソースの仕様は、steps
オブジェクトで構成されます。以下の例は、buildah
クラスタービルドストラテジーの仕様を示しています。
2.3. BuildRun リソース リンクのコピーリンクがクリップボードにコピーされました!
BuildRun
リソースは、クラスタージョブや Tekton タスク実行と同様に、クラスターのビルドを呼び出します。BuildRun
リソースはクラスター上のワークロードを表し、その結果 Pod が実行します。BuildRun
は、ビルドで実行中のインスタンスです。クラスター上で特定のパラメーターを使用して実行するビルドをインスタンス化します。
BuildRun
リソースを使用すると、以下の要素を定義できます。
-
ビルドのステータスを監視する一意の
BuildRun
名 -
ビルド中に使用する、参照される
Build
インスタンス - ビルドの全シークレットをホストするサービスアカウント
各 BuildRun
リソースは、namespace 内で利用できます。
2.4. ビルドコントローラー リンクのコピーリンクがクリップボードにコピーされました!
build controller は、Build
リソースの更新を監視し、以下のタスクを実行します。
-
参照される
Strategy
オブジェクトがBuild
リソースに存在するかどうかを検証します。 -
Build
CR で指定されたパラメーターが参照されたビルドストラテジーに存在するかどうかを検証します。また、パラメーター名が予約された名前と競合するかどうかも検証します。 -
コンテナーレジストリーの出力シークレットが
Build
リソースに存在するかどうかを検証します。 -
参照される
spec.source.git.url
エンドポイント URL がBuild
リソースに存在するかどうかを検証します。
build run controller は、Build
または TaskRun
リソースの更新を監視し、以下のタスクを実行します。
-
既存の
TaskRun
リソースを検索し、その親BuildRun
リソースのステータスを更新します。 -
指定したサービスアカウントを取得し、
Build
リソースの出力シークレットと共に設定します。 -
TaskRun
リソースが存在しない場合は、コントローラーが新しい TektonTaskRun
リソースを生成し、TaskRun
リソースへの参照を設定します。 -
TaskRun
リソースの後続の更新では、コントローラーが親のBuildRun
リソースを更新します。
2.4.1. ビルドの検証 リンクのコピーリンクがクリップボードにコピーされました!
BuildRun
リソースのトリガーを回避して、依存関係や設定が正しくない、または欠落していることが原因で失敗しないように、ビルドコントローラーがこのような内容を事前に検証します。すべての検証が成功すると、Succeeded
という名前の status.reason
フィールドが表示されます。ただし、検証が失敗した場合は、status.reason
フィールドと status.message
フィールドをチェックして根本原因を理解する必要があります。
status.reason フィールド | 説明 |
---|---|
| namespace レベルで参照されているストラテジーは存在しません。 |
| クラスターレベルで参照されているストラテジーは存在しません。 |
|
|
| Git への認証に使用されるシークレットは存在しません。 |
| コンテナーレジストリーに対する認証に使用されるシークレットが存在しません。 |
| コンテナーレジストリーに対する認証に使用されるシークレットが存在しません。 |
| 認証に使用されるシークレットが複数欠落しています。 |
|
1 つまたは複数の定義された |
|
パラメーターは参照されたストラテジーでは定義されません。これらのパラメーターは、ストラテジーの |
|
定義された |
|
|
| ユーザー指定の環境変数の名前が空白であることを示します。 |
| ユーザー指定の環境変数の値が空白であることを示します。 |
第3章 ビルドストラテジー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターでは、厳選されたビルドストラテジーセットまたはクラスタービルドストラテジーを使用できます。Builds for Red Hat OpenShift は、使用するこれらのストラテジーを自動的にインストールします。このストラテジーの自動インストールにより、ビルドをすぐに開始できます。
ビルドは、以下のクラスタービルドストラテジーをサポートします。
-
buildah
: すべてのプラットフォームでサポートされます。 -
source-to-image
: Linux/amd64 プラットフォームでサポートされます。
buildpacks
ビルドストラテジーは現在 Developer Preview 段階にあります。詳細は、buildpacks の例 を参照してください。
3.1. Buildah リンクのコピーリンクがクリップボードにコピーされました!
buildah
クラスターのビルドストラテジーは、Dockerfile を使用してコンテナーイメージをビルドし、それをターゲットレジストリーにプッシュします。Build
CR の spec.paramValues
フィールドに Dockerfile を指定する必要があります。
Builds for Red Hat OpenShift Operator は buildah
ストラテジーをクラスターレベルでインストールするため、クラスター内の異なる名前空間間で buildah
ストラテジーを共有できます。
buildah
ストラテジーに対して次のパラメーターを設定できます。
名前 | 型 | 説明 | デフォルト |
---|---|---|---|
| array | ビルド中に使用される Dockerfile で必要な引数のキーと値のペア | [] |
| array | ブロックする必要があるレジストリーのリスト | [] |
| array | 完全修飾ドメイン名 (FQDN) を含む安全でないレジストリーのリスト | [] |
| array | 短縮名のイメージを検索するためのレジストリーのリスト | ["registry.redhat.io", "quay.io"] |
| string | ビルド中に使用される Dockerfile のパス | "Dockerfile" |
| string |
| "vfs" |
詳細は、関連情報 セクションの ビルドストラテジーの設定 を参照してください。
3.2. Source-to-Image リンクのコピーリンクがクリップボードにコピーされました!
このビルドストラテジーは、source-to-image
および buildah
で構成されます。このストラテジーを使用して、コンテナーファイルを生成し、ビルダーイメージでアプリケーションをビルドする準備を行うことができます。Build
CR の spec.paramValues
フィールドにビルダーイメージを指定する必要があります。
Builds for Red Hat OpenShift Operator は source-to-image
ストラテジーをクラスターレベルでインストールするため、クラスター内の異なる namespace 間で source-to-image
ストラテジーを共有できます。
source-to-image
ストラテジーに対して次のパラメーターを設定できます。
名前 | 型 | 説明 | デフォルト |
---|---|---|---|
| array | ブロックする必要があるレジストリーのリスト | [] |
| array | 安全でないレジストリーとその FQDN のリスト | [] |
| array | 短縮名のイメージを検索するためのレジストリーのリスト | ["registry.redhat.io", "quay.io"] |
| string | ビルド中に使用されるビルダーイメージの場所 | 該当なし |
| string |
オーバーレイや vfs など、 | "vfs" |
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.