This document outlines the process for creating a new official release for the Node Readiness Controller.
- Create a new GitHub Issue titled "Release vX.Y.Z" to track the release process.
- In the issue, gather a preliminary changelog by reviewing commits since the last release. A good starting point is
git log --oneline <last-tag>..HEAD.
- Create a new branch from
mainnamedrelease-vX.Y.Z. - In this branch, update any documentation, examples, or manifests as needed for the release.
- Ensure all tests are passing.
Once the release branch is ready and has been approved by maintainers:
-
Make sure your local
mainbranch is up to date and you have the release branch checked out. -
Create an annotated, signed Git tag for the version. The tag message should contain the final changelog.
# Example: VERSION=v0.1.0 git tag -s "${VERSION}" -m "Release ${VERSION} ### Release Notes - Initial alpha release of the controller. - Support for NodeReadinessRule API. - Manages node taints based on custom readiness conditions."
-
Push the tag to the main repository:
git push origin "${VERSION}"
-
Pushing the tag will trigger the
cloudbuild.yamlCI to build and publish the container image for the release (e.g.,us-central1-docker.pkg.dev/.../node-readiness-controller:vX.Y.Z). -
Go to the Releases page on GitHub.
-
Find the new tag and click "Edit tag".
-
Paste the same changelog into the release description.
-
Generate the release manifest locally for this version:
make build-installer IMG_TAG=vX.Y.Z
-
Upload the generated
dist/install.yamlfile as a release artifact. -
Publish the release.
- Close the release tracking issue.
- Announce the release on the
kubernetes-devandsig-nodemailing lists. The subject should be:[ANNOUNCE] Node Readiness Controller vX.Y.Z is released.