Skip to content

Commit 5d2ff50

Browse files
authored
Merge pull request #500 from yussufsh/clean
Doc for release process
2 parents 01b12c0 + ab9dfbd commit 5d2ff50

File tree

1 file changed

+57
-12
lines changed

1 file changed

+57
-12
lines changed

RELEASE.md

Lines changed: 57 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,57 @@
1-
# Release Process
2-
3-
The IBM PowerVS Block CSI Driver is released on an as-needed basis. The process is as follows:
4-
5-
1. An issue is proposing a new release with a changelog since the last release
6-
2. All [OWNERS](OWNERS) must LGTM this release
7-
3. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`
8-
4. The release issue is closed
9-
5. An announcement email is sent to `[email protected]` with the subject `[ANNOUNCE] ibm-powervs-block-csi-driver $VERSION is released`
10-
6. A new release will be cut when there are new releases in the following packages: `kubernetes, go, go builder, container-storage-interface, side cars`
11-
7. A new patch release will be cut when there are minor package updates
12-
8. A new release will be cut with new features
1+
# IBM PowerVS Block CSI Driver Release Process
2+
3+
## Choose the release version and release branch
4+
5+
1. Find the [latest release](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver/releases/latest). For example, `v3.5.0`.
6+
1. Increment the version according to semantic versioning https://semver.org/. For example, `v3.5.1` for bug fixes or updated images, `v3.6.0` for minor changes, `v4.0.0` for major changes.
7+
1. Find or create the corresponding release branch that corresponds to a minor version. For example, for `v3.5.1` the release branch would be `release-3.5` and it would already exist. For `v3.6.0` it would be `release-3.6` and the branch would need to be created. If you do not have permission to create the branch, ask [OWNERS](OWNERS).
8+
9+
## Create the release commit
10+
11+
Checkout the release branch you chose above, for example `git checkout release-3.5`.
12+
13+
### Update README.md
14+
15+
1. Search for any references to the previous version on the README, and update them if necessary.
16+
1. Update the [CSI Specification Compatibility Matrix](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver#csi-specification-compatibility-matrix) section with the new version.
17+
18+
### Update kustomization.yaml
19+
20+
1. Edit the driver version in [kustomization.yaml](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver/blob/main/deploy/kubernetes/overlays/stable/kustomization.yaml) with the release version.
21+
1. Update any side car versions if required.
22+
23+
### Send a release PR to the release branch
24+
25+
At this point you should have all changes required for the release commit. Verify the changes via git diff and send a new [PR](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver/pulls) with the commit against the release branch.
26+
27+
28+
## Tag the release
29+
30+
Once the PR is merged tag the release commit with the relase tag. You can do this locally to push the tag or use GitHub to create the realease tag. You'll need push privileges for this step.
31+
32+
## Promote the new image on registry.k8s.io
33+
34+
1. Once you create a release the new image will appear at the [GCR repo](https://console.cloud.google.com/gcr/images/k8s-staging-cloud-provider-ibm/global/ibm-powervs-block-csi-driver).
35+
1. Click on the release image and capture the `Digest` from overview tab. For example, `sha256:e9a1de089253f137c19d7414ac17c99ff7cc508473a8f12e0910c580dcc70a57`.
36+
1. Create a PR to add the new release version with above image digest to the [registry.k8s.io/images/k8s-staging-cloud-provider-ibm/images.yaml](https://github.com/kubernetes/k8s.io/blob/main/registry.k8s.io/images/k8s-staging-cloud-provider-ibm/images.yaml)
37+
1. Once the PR is merged, verify that the new image is listed at https://explore.ggcr.dev/?repo=registry.k8s.io%2Fcloud-provider-ibm%2Fibm-powervs-block-csi-driver
38+
39+
40+
## Create the post-release commit
41+
42+
Checkout the main branch `git checkout main`.
43+
44+
### Update README.md
45+
46+
1. Update the [CSI Specification Compatibility Matrix](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver#csi-specification-compatibility-matrix) section with the new version.
47+
48+
### Update kustomization.yaml
49+
50+
1. Edit the driver version in [kustomization.yaml](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver/blob/main/deploy/kubernetes/overlays/stable/kustomization.yaml) with the release version.
51+
1. Update any side car versions if required.
52+
53+
### Send a post-release PR to the main branch
54+
55+
Create a new [PR](https://github.com/kubernetes-sigs/ibm-powervs-block-csi-driver/pulls) with the commit against the main branch.
56+
57+
The README and kustomize deployment files must not be updated to refer to the new images until after the images have been verified, available, therefore it's necessary to make these changes in a post-release PR rather than the original release PR.

0 commit comments

Comments
 (0)