Skip to content

Commit bba6fab

Browse files
authored
doc: update release notes for checking image promotion (#149)
1 parent 3206caf commit bba6fab

File tree

1 file changed

+50
-8
lines changed

1 file changed

+50
-8
lines changed

RELEASE.md

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,63 @@ The automation will:
2323
2. Create and push a git tag `vX.Y.Z` at the merged commit.
2424
3. If it is a minor or major release (e.g. `v0.2.0`), it will automatically branch off `release-vX.Y.Z` and push it to the repository.
2525

26-
## 3. Create the GitHub Release
26+
## 3. Promote the Images
2727

28-
- Pushing the tag will trigger the `cloudbuild.yaml` CI to build and publish the container image for the release (e.g., `us-central1-docker.pkg.dev/.../node-readiness-controller:vX.Y.Z`).
29-
- Go to the [Releases page](https://github.com/kubernetes-sigs/node-readiness-controller/releases) on GitHub.
30-
- Find the new tag and click "Edit tag" (or "Draft a new release" and select the tag).
31-
- Paste the final changelog into the release description.
32-
- Generate the release manifests locally for this version:
28+
After the release tag is pushed, the images must be built, pushed to staging, and then promoted to the official registry.
29+
30+
### A. Verify Staging Images
31+
- Monitor the image push job status on [Testgrid (sig-node-image-pushes)](https://testgrid.k8s.io/sig-node-image-pushes#post-node-readiness-controller-push-images).
32+
- The Prow job configuration is in [test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/image-pushing/k8s-staging-node-readiness-controller.yaml) if troubleshooting is needed.
33+
- Verify the images exist in the staging repository:
34+
```sh
35+
skopeo list-tags docker://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/node-readiness-controller | grep vX.Y.Z
36+
```
37+
38+
### B. Create PR for Promotion
39+
- Identify the image digests:
40+
```sh
41+
skopeo inspect docker://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/node-readiness-controller:vX.Y.Z --format '{{.Digest}}'
42+
skopeo inspect docker://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/node-readiness-reporter:vX.Y.Z --format '{{.Digest}}'
43+
```
44+
- Fork [kubernetes/k8s.io](https://github.com/kubernetes/k8s.io).
45+
- Update
46+
`registry.k8s.io/images/k8s-staging-node-readiness-controller/images.yaml`
47+
with the new digests and tags ([sample PR](https://github.com/kubernetes/k8s.io/pull/9176)).
48+
- Submit the PR to `kubernetes/k8s.io`. Once it is approved and merged
49+
automation will schedule the promotion.
50+
51+
## 4. Final Verification and GitHub Release
3352

53+
Before publishing the release, verify the images are available at k8s-registry:
54+
55+
### A. Verify Official Registry
56+
- Ensure the images are available at `registry.k8s.io`:
57+
```sh
58+
skopeo list-tags docker://registry.k8s.io/node-readiness-controller/node-readiness-controller | grep vX.Y.Z
59+
```
60+
61+
### B. Test Release Artifacts
62+
- Checkout the release tag locally
63+
```sh
64+
git show vX.Y.Z -q # to verify the right tag and commit
65+
git checkout vX.Y.Z
66+
```
67+
- Generate the release manifests:
3468
```sh
69+
rm -rf ./dist
3570
make build-installer IMG_PREFIX=registry.k8s.io/node-readiness-controller/node-readiness-controller IMG_TAG=vX.Y.Z
71+
ls ./dist # to confirm the generated artifacts
3672
```
37-
- Upload the generated `dist/crds.yaml`, `dist/install.yaml`, and `dist/install-full.yaml` files as release artifacts.
73+
- Run a local E2E test in Kind (see `docs/TEST_README.md`) using the generated manifests from the `dist/` directory to ensure they pull the correct images and function as expected.
74+
75+
### C. Create the GitHub Release
76+
- Go to the [Releases page](https://github.com/kubernetes-sigs/node-readiness-controller/releases) on GitHub.
77+
- Find the new tag and click "Edit tag" (or "Draft a new release" and select the tag).
78+
- Paste the final changelog into the release description.
79+
- Upload the generated manifests (`dist/crds.yaml`, `dist/install.yaml`, and `dist/install-full.yaml`) as release artifacts.
3880
- Publish the release.
3981

40-
## 4. Post-Release Tasks
82+
## 5. Post-Release Tasks
4183

4284
- Close the release tracking issue.
4385
- Announce the release on the `sig-node` mailing list. The subject should be: `[ANNOUNCE] Node Readiness Controller vX.Y.Z is released`.

0 commit comments

Comments
 (0)