-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade shipwright-io/build to v0.13.0 #216
Upgrade shipwright-io/build to v0.13.0 #216
Conversation
/assign @ayushsatyam146 /cc @apoorvajagtap |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@adambkaplan I believe there's a typo in k8s.io version mentioned in the release note, it should be v0.27.11 instead of v1.27.11, right?
Also, the unit test failures report
unable to retrieve the complete list of server APIs: shipwright.io/v1alpha1
As we now have set the storage version to v1beta1 with build v0.13.0, we need to update the buildStrategy samples here similar to build/samples/v1beta1.
Update the Shipwright APIs to use v0.13.0 as their baseline. This pulled in the following dependency updates: - k8s.io/* to v0.27.11. This corresponds to Kubernets 1.27.11 code. - sigs.k8s.io/controller-runtime to v0.15.3 Signed-off-by: Adam Kaplan <[email protected]>
Upgrading to k8s 1.27 required a similar update to the version Envtest simulates. While testing this locally, I discovered that the latest branch of the setup-envtest tool requires golang 1.22. Using the older `release-0.17` branch bypasses this issue for now. After the update, some of the tests in `TestShipwrightBuildReconciler_Reconcile` fail permanently. These were previously marked as "brittle" because they used separate k8s test clientsets. These tests are now skipped, resulting in loss of test coverage related to operand image overrides. A refactor is in order to ensure we only use the controller-runtime clientsets. This should come after the upgrade to operator-sdk, which will require a restructure of the project. The update also exposed a latent bug in our controller logic, related to updating the ShipwrightBuild object status. We previously were not requeing on error, which in production can happen for a wide variety of reasons. This bug was in fact caught by a lint check that was skipped; this bypass has been removed to ensure we don't regress in the future.
f931498
to
811604b
Compare
/kind bug 😌 these updates actually exposed a bug in the controller code! I observed a few things that led me to think something was off in the tests:
Release note has been updated to include this bug fix. |
/lgtm |
/approve Self-approving. TODO - may need to review DevStats to add additional approvers. |
[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 |
Changes
Upgrade shipwright-io/build to v0.13.0, ahead of upgrading the samples and operand deployments.
This includes respective transitive updates to k8s libraries and their dependencies. As part of the upgrade, a previously identified flaky/brittle test started failing permanently. These have been skipped for the interim.
These updates also exposed a bug in the controller code, where the controller would not re-queue when a status update failed. This has now been fixed.
/kind cleanup
Submitter Checklist
See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.
Release Notes