mirror of
https://github.com/kubernetes/node-problem-detector.git
synced 2026-02-28 16:50:19 +00:00
Adds a `make release` command for releasing new NPD version. It stops pushing the tar files to gs://kubernetes-release, because no one has write permission to the GCS bucket any more. We haven't pushed NPD tar files to that GCS bucket after v0.8.10. k/k has been using NPD v0.8.13+ since 1.29. NPD release should just include the tar files in the release note.
117 lines
4.9 KiB
Markdown
117 lines
4.9 KiB
Markdown
# Release Process
|
|
|
|
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!
|
|
|
|
## Prerequisites
|
|
|
|
Ensure access to the container image [staging registry](https://console.cloud.google.com/gcr/images/k8s-staging-npd/global/node-problem-detector).
|
|
Add email to `k8s-infra-staging-npd` group in sig-node [groups.yaml](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-node/groups.yaml).
|
|
See example https://github.com/kubernetes/k8s.io/pull/1599.
|
|
|
|
## Preparing for a release
|
|
|
|
There are a few steps that should be taken prior to creating the actual release
|
|
itself.
|
|
|
|
1. 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).
|
|
|
|
2. Based on the changes to be included in the release, determine what the next
|
|
release number should be. We strive to follow [SemVer](https://semver.org/)
|
|
as much as possible.
|
|
|
|
3. Update [CHANGELOG](https://github.com/kubernetes/node-problem-detector/blob/master/CHANGELOG.md)
|
|
with all significant changes.
|
|
|
|
## Create release
|
|
|
|
### Create the new version tag
|
|
|
|
#### Option 1
|
|
```
|
|
# 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
|
|
```
|
|
|
|
#### Option 2
|
|
Update [version.txt](https://github.com/kubernetes/node-problem-detector/blob/master/version.txt)
|
|
(example https://github.com/kubernetes/node-problem-detector/pull/869).
|
|
|
|
### Build and push artifacts
|
|
This step builds the NPD into container files and tar files.
|
|
- The container file is pushed to the [staging registry](https://console.cloud.google.com/gcr/images/k8s-staging-npd/global/node-problem-detector).
|
|
You will promote the new image to registry.k8s.io later.
|
|
- The tar files are generated locally. You will upload those to github in the
|
|
release note later.
|
|
|
|
**Note: You need the access mentioned in the [prerequisites](#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
|
|
```
|
|
|
|
### Promote new NPD image to registry.k8s.io
|
|
1. Get the SHA256 from the new NPD image from the [staging registry](https://console.cloud.google.com/gcr/images/k8s-staging-npd/global/node-problem-detector)
|
|
or previous step.
|
|
2. Promote the NPD image to registry.k8s.io ([images.yaml](https://github.com/kubernetes/k8s.io/blob/main/registry.k8s.io/images/k8s-staging-npd/images.yaml), example https://github.com/kubernetes/k8s.io/pull/6523).
|
|
3. Verify the container image.
|
|
```
|
|
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
|
|
```
|
|
|
|
### Create the release note
|
|
|
|
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:
|
|
|
|
1. 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](https://github.com/kubernetes/node-problem-detector/compare/v0.8.15...v0.8.17)).
|
|
|
|
2. 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.
|
|
|
|
3. Provide a link to the new image release (e.g. `Image:
|
|
registry.k8s.io/node-problem-detector/node-problem-detector:v0.8.17`)
|
|
|
|
4. Upload the tar files built from [pevious step](#build-and-push-artifacts),
|
|
and include the SHA and MD5.
|
|
|
|
## Post release steps
|
|
|
|
1. 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/879.
|
|
|
|
2. Update the NPD version in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)
|
|
repo, so that kubernetes clusters use the new NPD version. Example
|
|
https://github.com/kubernetes/kubernetes/pull/123740.
|