-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Document the process for releasing a new sidecar
- Loading branch information
Showing
1 changed file
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Sidecar Release Process | ||
|
||
This page describes the process for releasing a kubernetes-csi sidecar. | ||
|
||
## Prerequisites | ||
|
||
The release manager must: | ||
|
||
* Be a member of the kubernetes-csi organization. Open an | ||
[issue](https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&template=membership.md&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E) in | ||
kubernetes/org to request membership | ||
* Be a top level approver for the repository. To become a top level approver, | ||
the candidate must demonstrate ownership and deep knowledge of the repository | ||
through active maintainence, responding to and fixing issues, reviewing PRs, | ||
test triage. | ||
* Be part of the maintainers group for the repository. Membership can be | ||
requested by submitting a PR to kubernetes/org. | ||
[Example](https://github.com/kubernetes/org/pull/1467) | ||
|
||
## Release Process | ||
1. Identify all issues and ongoing PRs that should go into the release, and | ||
drive them to resolution. | ||
1. Download [K8s release notes | ||
generator](https://github.com/kubernetes/release/tree/master/cmd/release-notes) | ||
1. Generate release notes for the release. Replace arguments with the relevant | ||
information. | ||
``` | ||
./release-notes --start-sha=0ed6978fd199e3ca10326b82b4b8b8e916211c9b --end-sha=3cb3d2f18ed8cb40371c6d8886edcabd1f27e7b9 \ | ||
--github-org=kubernetes-csi --github-repo=external-attacher -branch=master -output out.md | ||
``` | ||
1. Compare the generated output to the new commits for the release to check if | ||
any notable change missed a release note. | ||
1. Reword release notes as needed. Make sure to check notes for breaking | ||
changes and deprecations. | ||
1. If release is a new major/minor version, create a new `CHANGELOG-<minor>.md` | ||
file. Otherwise, add the release notes to the top of the existing CHANGELOG | ||
file for that minor version. | ||
1. Submit a PR for the CHANGELOG changes. | ||
1. Submit a PR for README changes, in particular, Compatibility, Feature status, | ||
and any other sections that may need updating. | ||
1. Check that all [canary CI | ||
jobs](https://k8s-testgrid.appspot.com/sig-storage-csi-ci) are passing, | ||
and that test coverage is adequate for the changes that are going into the release. | ||
1. Make sure that no new PRs have merged in the meantime, and no PRs are in | ||
flight and soon to be merged. | ||
1. [Create a new | ||
release](https://github.com/kubernetes-csi/external-provisioner/releases/new) | ||
following a previous release as a template. Be sure to select the correct | ||
branch. | ||
1. If release was a new major/minor version, create a new `release-<minor>` | ||
branch at that commit. | ||
1. Update [kubernetes-csi/docs](https://github.com/kubernetes-csi/docs) sidecar | ||
and feature pages with the new released version. | ||
1. After all the sidecars have been released, update | ||
CSI hostpath driver with the new sidecars in the [CSI repo](https://github.com/kubernetes-csi/csi-driver-host-path/tree/master/deploy) | ||
and [k/k | ||
in-tree](https://github.com/kubernetes/kubernetes/tree/master/test/e2e/testing-manifests/storage-csi/hostpath/hostpath) |