Chapter 2. Build strategies
You can use a curated set of build strategies or cluster build strategies on the OpenShift Container Platform cluster. The Builds for Red Hat OpenShift Operator automatically installs these strategies for use. This automated installation of strategies helps you to quickly get started with Builds.
Builds supports the following cluster build strategies:
-
buildah
: Supported on all platforms -
source-to-image
: Supported on the linux/amd64 platform -
buildpacks
: Supported on all platforms -
buildpacks-extender
: Supported on all platforms
2.1. Buildah Copy linkLink copied to clipboard!
The buildah
cluster build strategy uses a Dockerfile to build a container image and pushes it to the target registry. You must specify the Dockerfile in the spec.paramValues
field of the Build
CR.
You can share the buildah
strategy across different namespaces within your cluster because the Builds for Red Hat OpenShift Operator installs the buildah
strategy at cluster level.
You can configure the following parameters for the buildah
strategy:
Name | Type | Description | Default |
---|---|---|---|
| array | Key-value pair of the arguments required by the Dockerfile that is used during the build | [] |
| array | List of registries that must be blocked | [] |
| array | List of insecure registries with their fully qualified domain name (FQDN) | [] |
| array | List of registries to search short name images | ["registry.redhat.io", "quay.io"] |
| string | Path of the Dockerfile that is used during the build | "Dockerfile" |
| string |
Storage drivers that are used by | "vfs" |
| string | Sets the target stage to be built | "" |
For more information, see Configuring build strategies.
2.2. Source-to-image Copy linkLink copied to clipboard!
This build strategy is composed of source-to-image
and buildah
. You can use this strategy to generate a container file and prepare the application to build with a builder image. You must specify the builder image in the spec.paramValues
field of the Build
CR.
You can share the source-to-image
strategy across different namespaces within your cluster because the Builds for Red Hat OpenShift Operator installs the source-to-image
strategy at cluster level.
You can configure the following parameters for the source-to-image
strategy:
Name | Type | Description | Default |
---|---|---|---|
| array | List of registries that must be blocked | [] |
| array | List of insecure registries with their FQDN | [] |
| array | List of registries to search short name images | ["registry.redhat.io", "quay.io"] |
| string | Location of the builder image that is used during the build | NA |
| string |
Storage drivers that are used by | "vfs" |
2.3. Buildpacks Copy linkLink copied to clipboard!
The buildpacks
cluster build strategy uses Cloud Native Buildpacks (CNB) to build and push a container image from source code, without requiring a Dockerfile
. The configuration details are provided through parameters in the Build
resource.
The buildpacks-extender
cluster build strategy supports the image extension feature of CNB, in addition to all the capabilities offered by the buildpacks
strategy. The buildpacks-extender
allows you to modify the builder or run image using a Dockerfile
. This is useful for installing system dependencies or applying security configurations that standard Buildpacks cannot handle. The Dockerfile
is provided by a Buildpack that supports extensions. To use the extender, set the cnb-extender-kind
parameter in the Build
resource.
The buildpacks
cluster build strategy supports Quarkus and Go-based applications, while the buildpacks-extender
cluster build strategy supports Node.js and Python-based applications.
You can configure the following parameters for the buildpacks
strategy:
Name | Type | Description | Default |
---|---|---|---|
| string | Supported Platform API Version | "0.12" |
| string | Builder image containing the buildpacks | "" |
| string | Image to use while executing Lifecycle phases | "buildpacksio/lifecycle:0.20.8" |
| string | Logging levels | "debug"] |
| string | Reference to a run image to use | "" |
| string | Name of the persistent app cache image | "" |
| string | Subpath within the source input where the source to build is located | "" |
| array | Environment variables to set during build-time | [] |
| string | Name of the platform directory | "empty-dir" |
| string | User ID of the builder image user | "1001" |
| string | Group ID of the builder image user | "1001" |
| string | Absolute path to the user’s home directory | "/tekton/home" |
| string | Name of the Persistent Volume Claim for cache | "ws-pvc" |
| string |
The kind of image to extend ( | "" |
| string | Directory of extended layers, passed as -extended flag to the exporter | "/layers/extended" |