Skip to content

Conversation

dorzel
Copy link
Contributor

@dorzel dorzel commented May 20, 2025

Changes

Add a blog post about the build scheduling features as part of shipwright-io/community#213

Fixes #121

Submitter Checklist

  • Includes tests if functionality changed/was added
  • Includes docs if changes are user-facing
  • Set a kind label on this PR
  • Release notes block has been filled in, or marked NONE

See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.

Release Notes

Add blog post for build scheduling features

@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label May 20, 2025
@dorzel
Copy link
Contributor Author

dorzel commented May 20, 2025

/kind documentation

@openshift-ci openshift-ci bot added the kind/documentation Categorizes issue or PR as related to documentation. label May 20, 2025
@dorzel dorzel changed the title Draft blog post for build scheduler features Blog post for build scheduler features Jun 12, 2025
Copy link
Member

@adambkaplan adambkaplan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve

Excellent blog post! The only hard requirement blocking publication is the draft: true flag in the post metadata. All of my other comments are minor grammar/style nits that shouldn't blog LGTM/merge.

---
title: "Shipwright build scheduler features"
date: 2025-05-20T11:39:00-06:00
draft: true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change this to false so it renders in the deploy preview:

Suggested change
draft: true
draft: false


## New Build Scheduler Features

A new set of build scheduling features introduced in [v0.15](https://shipwright.io/docs/blog/posts/2025-02-28-release-v0.15) have recently been merged into Shipwright that allows users to specify node selectors, custom schedulers, and tolerations for builds.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit to clarify that this isn't exactly recent:

Suggested change
A new set of build scheduling features introduced in [v0.15](https://shipwright.io/docs/blog/posts/2025-02-28-release-v0.15) have recently been merged into Shipwright that allows users to specify node selectors, custom schedulers, and tolerations for builds.
A new set of build scheduling features introduced in [v0.15](https://shipwright.io/docs/blog/posts/2025-02-28-release-v0.15) allows users to specify node selectors, custom schedulers, and tolerations for builds.


A new set of build scheduling features introduced in [v0.15](https://shipwright.io/docs/blog/posts/2025-02-28-release-v0.15) have recently been merged into Shipwright that allows users to specify node selectors, custom schedulers, and tolerations for builds.

These make it easier to schedule builds when using Shipwright on clusters with nodes of multiple architectures, use a scheduler that is tuned to a certain workflow, or just more general control of which nodes builds get scheduled on.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit - we can assume "when using Shipwright", and fix repeated words:

Suggested change
These make it easier to schedule builds when using Shipwright on clusters with nodes of multiple architectures, use a scheduler that is tuned to a certain workflow, or just more general control of which nodes builds get scheduled on.
These make it easier to schedule builds on clusters with nodes of multiple CPU architectures, use a scheduler that is tuned to a certain workflow, or just more general control of which nodes builds run on.

Instead of specifying these options when running the build, we can also specify them when creating the build:

```bash
$ shp build create test-golang-build --output-image=kind.local/test/test-golang-build --source-git-url=https://github.com/shipwright-io/sample-go --source-context-dir=docker-build --strategy-name=buildah-shipwright-managed-push --scheduler-name=test-scheduler
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit - use newlines since we have so many flags:

Suggested change
$ shp build create test-golang-build --output-image=kind.local/test/test-golang-build --source-git-url=https://github.com/shipwright-io/sample-go --source-context-dir=docker-build --strategy-name=buildah-shipwright-managed-push --scheduler-name=test-scheduler
$ shp build create test-golang-build \
--output-image=kind.local/test/test-golang-build \
--source-git-url=https://github.com/shipwright-io/sample-go \
--source-context-dir=docker-build \
--strategy-name=buildah-shipwright-managed-push \
--scheduler-name=test-scheduler

We'll start with the same example build as above:

```bash
$ shp build create test-golang-build --output-image=kind.local/test/test-golang-build --source-git-url=https://github.com/shipwright-io/sample-go --source-context-dir=docker-build --strategy-name=buildah-shipwright-managed-push
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit - ditto on newlines:

Suggested change
$ shp build create test-golang-build --output-image=kind.local/test/test-golang-build --source-git-url=https://github.com/shipwright-io/sample-go --source-context-dir=docker-build --strategy-name=buildah-shipwright-managed-push
$ shp build create test-golang-build \
--output-image=kind.local/test/test-golang-build \
--source-git-url=https://github.com/shipwright-io/sample-go \
--source-context-dir=docker-build \
--strategy-name=buildah-shipwright-managed-push

Copy link
Contributor

openshift-ci bot commented Jun 26, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: adambkaplan

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 26, 2025
@dorzel
Copy link
Contributor Author

dorzel commented Jun 26, 2025

@adambkaplan thanks for the review! Addressed everything above.

@adambkaplan
Copy link
Member

/lgtm

Looks great! Thanks so much!

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jul 2, 2025
@openshift-merge-bot openshift-merge-bot bot merged commit 073890e into shipwright-io:main Jul 2, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/documentation Categorizes issue or PR as related to documentation. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

SHIP-0039: Blog post build scheduler options features and guidelines
2 participants