diff --git a/content/docs/blog/posts/2025-06-16-release-v0.16.md b/content/docs/blog/posts/2025-06-16-release-v0.16.md new file mode 100644 index 00000000..95eadbb8 --- /dev/null +++ b/content/docs/blog/posts/2025-06-16-release-v0.16.md @@ -0,0 +1,107 @@ +--- +title: "Shipwright v0.16 Is Here" +date: 2025-06-16T09:41:00Z +draft: false +author: "Enrique Encalada ([@qu1queee](https://github.com/qu1queee))" +--- + +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](https://shipwright.io/)! 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](https://github.com/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: + + ```bash + 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: + + ```bash + 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: + + ```bash + kubectl apply --filename https://github.com/shipwright-io/build/releases/download/v0.16.0/sample-strategies.yaml --server-side + ``` + +### CLI + +#### Windows + +```bash +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 + +```bash +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 + +```bash +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](https://operatorhub.io/operator/shipwright-operator). + +Next, create the following: + +```yaml +--- +apiVersion: operator.shipwright.io/v1alpha1 +kind: ShipwrightBuild +metadata: + name: shipwright-operator +spec: + targetNamespace: shipwright-build +```