Shipwright v0.20 Is Here!
We are excited to announce the release of Shipwright v0.20.0! This release brings multi-architecture image build support, improved strategy management, and updates across the Build, CLI, and Operator projects.
Build Updates
Multi-Architecture Output Platforms
A new spec.output.platforms field has been added to Build and BuildRun resources, allowing you
to define target OS/architecture combinations for multi-architecture image builds. The BuildRun
controller validates platform entries up front and rejects invalid or conflicting configurations
before a build starts. This feature requires the controller to run in PipelineRun executor mode
(BUILDRUN_EXECUTOR=PipelineRun), building on the execution mode introduced in v0.19.
Build Strategy Improvements
The sample buildpacks build strategies now support configuring insecure registries in a fashion similar to the buildah and source-to-image strategies.
BuildStrategy and ClusterBuildStrategy resources now support Kustomize strategic merge patching for individual build steps by name, so
patches no longer replace the entire steps list.
Secret Reconciliation Simplification
You are no longer required to use the build.shipwright.io/referenced.secret=true annotation on
Secrets to cause related Builds to be reconciled when a Secret changes. The annotation is without meaning now.
Infrastructure and Dependency Updates
- Updated to Tekton LTS v1.12.0
- Increased resource requests and limits for the Ko build strategy to better meet real-world use cases
- The minimum supported Kubernetes version is now v1.34.0
- The minimum supported Tekton version is now v1.3.0 (Tekton LTS v1.12.0 is recommended)
Check out the full release notes on GitHub for further details. Note that there are also v0.20.5 and other patch releases that rebuild components to address vulnerabilities in base images and Go standard libraries.
CLI Updates
BuildRun Gather Command
The new shp buildrun gather subcommand collects BuildRun, TaskRun/PipelineRun, Pod, and
individual pod log objects for troubleshooting. Use the --output flag to set the destination
directory and the --archive flag to compress the output as a .tar.gz archive.
shp buildrun gather my-buildrun --output ./debug --archive
This release also updates user-facing logs to follow a consistent pattern across subcommands.
See the CLI release notes on GitHub for further details.
Operator Update
The operator was upgraded to deploy Shipwright Build v0.20.0 components. It also adds optional
Shipwright Triggers support. Set spec.triggers.enable: true on the ShipwrightBuild custom
resource to deploy the Triggers controller alongside Shipwright Build.
See the operator release notes on GitHub for details.
Installing Shipwright
Build
-
Install Tekton LTS v1.12.0:
kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/previous/v1.12.0/release.yaml -
Install v0.20.0 using the release YAML manifest:
kubectl apply --filename https://github.com/shipwright-io/build/releases/download/v0.20.0/release.yaml --server-side
curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/v0.20.0/hack/setup-webhook-cert.sh | bash -
(Optionally) Install the sample build strategies using the YAML manifest:
kubectl apply --filename https://github.com/shipwright-io/build/releases/download/v0.20.0/sample-strategies.yaml --server-side
CLI
Windows
curl --silent --fail --location https://github.com/shipwright-io/cli/releases/download/v0.20.0/shp_0.20.0_windows_x86_64.tar.gz | tar xzf - shp.exe
shp version
shp help
Mac
curl --silent --fail --location https://github.com/shipwright-io/cli/releases/download/v0.20.0/shp_0.20.0_macOS_$(uname -m).tar.gz | tar -xzf - -C /usr/local/bin shp
shp version
shp help
Linux
curl --silent --fail --location "https://github.com/shipwright-io/cli/releases/download/v0.20.0/shp_0.20.0_linux_$(uname -m | sed 's/aarch64/arm64/').tar.gz" | sudo tar -xzf - -C /usr/bin shp
shp version
shp help
Operator
To deploy and manage Shipwright Builds in your cluster, first ensure the operator v0.20.0 is installed and running on your cluster. You can follow the instructions on OperatorHub.
To enable optional Shipwright Triggers support, set spec.triggers.enable: true on your
ShipwrightBuild resource:
---
apiVersion: operator.shipwright.io/v1alpha1
kind: ShipwrightBuild
metadata:
name: shipwright-operator
spec:
targetNamespace: shipwright-build
triggers:
enable: true


