We are happy to announce the latest release of Shipwright’s main projects - v0.16.0. In this release, besides new features and fixes, we’re excited to announce that we’ve launched a brand new website! It’s been redesigned from the ground up to better showcase the project, make it easier to navigate, and help you find everything you need. Special thank you to @rxinui for this core contribution!

Key Features

Below are the key features in this release:

Improving Git Clone

The source.git.depth was added to the Build resource to specify the depth of the Git history. If not specified the default value is 1 which means that no history is cloned at all, being the fastest way to clone a Git repository. Any value greater than 1 will create a clone with the specified depth. For a full git history clone, depth must be set to 0.

Optimizing Controller Memory Footprint

Improve the Shipwright controller’s memory efficiency by restricting the manager cache to only TaskRuns and Pods associated with the controller. This is achieved by leveraging the buildrun.shipwright.io/name label to identify relevant resources. By narrowing the scope of what the manager caches, we significantly reduce memory usage.

CLI: Maintenance Update

The CLI was updated to support Build v0.16.0 APIs. Behind the scenes, this means it now uses the v1beta1 API instead of v1alpha1. As a result, CLI operations are slightly faster, since they no longer go through the conversion webhook.

Additionally, two new flags have been introduced to support node scheduling and node selection capabilities:

  • --node-selector: Sets the .spec.nodeSelector field for Build and BuildRun resources during creation.
  • --scheduler-name: Sets the .spec.schedulerName field for Build and BuildRun during both creation and execution.

Operator: Builds Upgrade

The operator was updated to deploy Builds v0.16.0.

Installing Shipwright

Build

  1. Install Tekton v1.0.0:

      kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v1.0.0/release.yaml
      
  2. Install v0.16.0 using the release YAML manifest:

      kubectl apply --filename https://github.com/shipwright-io/build/releases/download/v0.16.0/release.yaml --server-side
    
    curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/v0.16.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.16.0/sample-strategies.yaml --server-side
      

CLI

Windows

  curl --silent --fail --location https://github.com/shipwright-io/cli/releases/download/v0.16.0/shp_0.16.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.16.0/shp_0.16.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.16.0/shp_0.16.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.16.0 is installed and running on your cluster. You can follow the instructions on OperatorHub.

Next, create the following:

  ---
apiVersion: operator.shipwright.io/v1alpha1
kind: ShipwrightBuild
metadata:
  name: shipwright-operator
spec:
  targetNamespace: shipwright-build