These are notes to help follow a consistent release process. See something important missing? Please submit a pull request to add anything else that would be useful!
Ensure access to the container image staging registry. Add email to k8s-infra-staging-npd group in sig-node groups.yaml. See example https://github.com/kubernetes/k8s.io/pull/1599.
There are a few steps that should be taken prior to creating the actual release itself.
Collect changes since last release. This can be done by looking directly at merged commit messages (git log [last_release_tag]...HEAD), or by viewing the changes on GitHub (example: https://github.com/kubernetes/node-problem-detector/compare/v0.8.15...master).
Based on the changes to be included in the release, determine what the next release number should be. We strive to follow SemVer as much as possible.
Update CHANGELOG with all significant changes.
# Use v0.8.17 as an example. git clone git@github.com:kubernetes/node-problem-detector.git cd node-problem-detector/ git tag v0.8.17 git push origin v0.8.17
Update version.txt (example https://github.com/kubernetes/node-problem-detector/pull/869).
This step builds the NPD into container files and tar files.
Note: You need the access mentioned in the prerequisites section to perform steps in this section.
# One-time setup sudo apt-get install libsystemd-dev gcc-aarch64-linux-gnu cd node-problem-detector make release # Get SHA256 of the tar files. For example sha256sum node-problem-detector-v0.8.17-linux_amd64.tar.gz sha256sum node-problem-detector-v0.8.17-linux_arm64.tar.gz sha256sum node-problem-detector-v0.8.17-windows_amd64.tar.gz # Get MD5 of the tar files. For example md5sum node-problem-detector-v0.8.17-linux_amd64.tar.gz md5sum node-problem-detector-v0.8.17-linux_arm64.tar.gz md5sum node-problem-detector-v0.8.17-windows_amd64.tar.gz # Verify container image in staging registry and get SHA256. docker pull gcr.io/k8s-staging-npd/node-problem-detector:v0.8.17 docker image ls gcr.io/k8s-staging-npd/node-problem-detector --digests
docker pull registry.k8s.io/node-problem-detector/node-problem-detector:v0.8.17 docker image ls registry.k8s.io/node-problem-detector/node-problem-detector:v0.8.17
Go to https://github.com/kubernetes/node-problem-detector/releases, draft a new release note and publish. Make sure to include the following in the body of the release note:
For convenience, add a link to easily view the changes since the last release (e.g. https://github.com/kubernetes/node-problem-detector/compare/v0.8.15...v0.8.17).
There is no need to duplicate everything from the CHANGELOG, but include the most significant things so someone just viewing the release entry will have an idea of what it includes.
Provide a link to the new image release (e.g. Image: registry.k8s.io/node-problem-detector/node-problem-detector:v0.8.17)
Upload the tar files built from pevious step, and include the SHA and MD5.
Update image version in node-problem-detector repo, so anyone deploying directly from the repo deployment file will get the newest image deployed. Example https://github.com/kubernetes/node-problem-detector/pull/897.
Update the NPD version in kubernetes/kubernetes repo, so that kubernetes clusters use the new NPD version. Example https://github.com/kubernetes/kubernetes/pull/123740.