Shipwright v0.16 Is Here
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 forBuild
andBuildRun
resources during creation.--scheduler-name
: Sets the.spec.schedulerName
field forBuild
andBuildRun
during both creation and execution.
Operator: Builds Upgrade
The operator was updated to deploy Builds v0.16.0.
Installing Shipwright
Build
Install Tekton v1.0.0:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v1.0.0/release.yaml
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
(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