Skip to main content

Shipwright v0.20 Is Here!

· 4 min read
Shipwright Contributors

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

  1. Install Tekton LTS v1.12.0:

    kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/previous/v1.12.0/release.yaml
  2. 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
  3. (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